Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

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 تست کنید.