انواع دیگر تست‌ها

Integration Tests

اگر می‌خواهید کتابخانه خود را به عنوان یک سرویس‌گیرنده آزمایش کنید، از تست یکپارچه‌سازی (integration test) استفاده کنید.

یک فایل .rs در زیر tests/ بسازید:

// tests/my_library.rs
use my_library::init;

#[test]
fn test_init() {
    assert!(init().is_ok());
}

این آزمایش‌ها فقط به public API مربوط به crate شما دسترسی دارند.

تست‌ سندها

زبان Rust دارای پشتیبانی داخلی برای تست‌های مستندسازی است:

#![allow(unused)]
fn main() {
/// Shortens a string to the given length.
///
/// ```
/// # use playground::shorten_string;
/// assert_eq!(shorten_string("Hello World", 5), "Hello");
/// assert_eq!(shorten_string("Hello World", 20), "Hello World");
/// ```
pub fn shorten_string(s: &str, length: usize) -> &str {
    &s[..std::cmp::min(length, s.len())]
}
}
  • بلوک‌های کد در commentها /// به طور خودکار به عنوان کد Rust دیده می‌شوند.
  • این کد به عنوان بخشی از cargo test کامپایل و اجرا می‌شود.
  • افزودن # به کد، آن را از مستندات پنهان می‌کند، اما همچنان آن را کامپایل/اجرا می‌کند.
  • کد بالا را در Rust Playground تست کنید.