Testes UnitĂĄrios
Rust e Cargo vĂȘm com uma estrutura de testes unitĂĄrios simples:
-
Testes unitĂĄrios sĂŁo suportados em todo o seu cĂłdigo.
-
Testes de integração são suportados através do diretório
tests/
.
Testes sĂŁo marcados com #[test]
. Testes unitĂĄrios sĂŁo frequentemente colocados em um mĂłdulo aninhado tests
, usando #[cfg(test)]
para compilĂĄ-los condicionalmente apenas ao construir testes.
fn first_word(text: &str) -> &str {
match text.find(' ') {
Some(idx) => &text[..idx],
None => &text,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_empty() {
assert_eq!(first_word(""), "");
}
#[test]
fn test_single_word() {
assert_eq!(first_word("OlĂĄ"), "OlĂĄ");
}
#[test]
fn test_multiple_words() {
assert_eq!(first_word("Hello World"), "OlĂĄ");
}
}
- Isso permite que vocĂȘ tenha testes unitĂĄrios auxiliares privados.
- O atributo
#[cfg(test)]
somente fica ativo quando vocĂȘ executacargo test
.
This slide should take about 5 minutes.
Execute os testes no playground para mostrar seus resultados.