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

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

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

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