تستهای واحد (Unit Tests)
Rust and Cargo با یک چارچوب تست واحد ساده ارائه می شود:
-
Unit tests are supported throughout your code.
-
تستهای یکپارچهسازی از طریق دایرکتوری
tests/
پشتیبانی میشوند.
تستها با #[test]
علامتگذاری شدهاند. تستهای واحد اغلب در یک ماژول tests
تودرتو قرار میگیرند و از #[cfg(test)]
استفاده میکنند تا آنها را به صورت مشروط تنها در هنگام build تستها کامپایل کنند.
fn first_word(text: &str) -> &str {
match text.find(' ') {
Some(idx) => &text[..idx],
None => &text,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_empty() {
assert_eq!(first_word("."), ".");
}
#[test]
fn test_single_word() {
assert_eq!(first_word("سلام"), "سلام");
}
#[test]
fn test_multiple_words() {
assert_eq!(first_word("سلام دنیا!"), "سلام");
}
}
- این به شما امکان میدهد تا private helper را آزمایش کنید.
- ویژگی
#[cfg(test)]
تنها زمانی فعال است کهcargo test
را اجرا کنید.
This slide should take about 5 minutes.
تستها را در playground اجرا کنید تا نتیجههای آنها را نشاندهید.