Інші типи тестів

Інтеграційні тести

Якщо ви хочете перевірити свою бібліотеку як клієнт, скористайтеся інтеграційним тестом.

Створіть файл .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.