انواع دیگر تستها
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 تست کنید.