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.