Модульні тести
Rust і Cargo постачаються з простим фреймворком для модульного тестування:
-
Модульні тести підтримуються у всьому коді.
-
Тести інтеграції підтримуються через каталог
tests/
.
Тести позначаються #[test]
. Модульні тести часто розміщують у вкладеному модулі tests
, використовуючи #[cfg(test)]
для їх умовної компіляції лише під час збирання тестів.
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("Привіт"), "Привіт");
}
#[test]
fn test_multiple_words() {
assert_eq!(first_word("Привіт, світ!"), "Привіт");
}
}
- Це дозволяє тестувати приватних помічників.
- Атрибут
#[cfg(test)]
активний лише тоді, коли ви запускаєтеcargo test
.
This slide should take about 5 minutes.
Запустіть тести на майданчику, щоб показати їхні результати.