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.