Інші типи тестів
Інтеграційні тести
Якщо ви хочете перевірити свою бібліотеку як клієнт, скористайтеся інтеграційним тестом.
Створіть файл .rs у tests/:
// tests/my_library.rs
use my_library::init;
#[test]
fn test_init() {
assert!(init().is_ok());
}
Ці тести мають доступ лише до публічного API вашого ящика.
Тести документації
Rust має вбудовану підтримку для тестування документації:
#![allow(unused)]
fn main() {
/// Скорочує рядок до заданої довжини.
///
/// ```
/// # use playground::shorten_string;
/// assert_eq!(shorten_string("Привіт, світ", 5), "Привіт");
/// assert_eq!(shorten_string("Привіт, світ", 20), "Привіт, світ");
/// ```
pub fn shorten_string(s: &str, length: usize) -> &str {
&s[..std::cmp::min(length, s.len())]
}
}
- Блоки коду в коментарях
///автоматично сприймаються як код Rust. - Код буде скомпільовано та виконано як частину
cargo test. - Додавання
#до коду приховає його з документації, але все одно скомпілює/запустить. - Перевірте наведений вище код на Rust Playground.