Outros Tipos de Testes

Testes de Integração

Se quiser testar sua biblioteca como um cliente, use um teste de integração.

Crie um arquivo .rs em tests/:

// tests/my_library.rs use my_library::init; #[test] fn test_init() { assert!(init().is_ok()); }

Esses testes têm acesso somente à API pública do seu crate.

Testes de Documentação

Rust tem suporte embutido para testes de documentação:

#![allow(unused)] fn main() { /// Reduz uma string para o comprimento fornecido. /// /// ``` /// # use playground::shorten_string; /// assert_eq!(shorten_string("Hello World", 5), "Hello"); /// assert_eq!(shorten_string("Hello World", 20), "Hello World"); /// ``` pub fn shorten_string(s: &str, length: usize) -> &str { &s[..std::cmp::min(length, s.len())] } }
  • Blocos de código em comentários /// são vistos automaticamente como código Rust.
  • O código será compilado e executado como parte do cargo test.
  • Adicionar # no código o ocultará da documentação, mas ainda o compilará/executará.
  • Teste o código acima no Rust Playground.