pub fn is_even(num: i32) -> bool {
num % 2 == 0
}
/*
This attribute indicates that the following module is a conditional compilation module that should only be compiled and run when tests are being executed. In other words, this code will not be included in the final build unless it's being compiled for testing.
*/
#[cfg(test)]
// Defines a test module named tests. Rust's testing framework recognizes this as a special module for holding tests.
mod tests {
// This line imports all items from the parent module into the scope of the test module. This is necessary because the tests module is technically a separate module, and it needs explicit access to the functions (like is_even) defined in the parent module that are being tested.
use super::*;
// This attribute marks a function as a test case. When you run cargo test, Rust's test runner will execute all functions annotated with #[test].
#[test]
fn is_true_when_even() {
assert!(is_even(4));
}
#[test]
fn is_false_when_odd() {
assert!(!is_even(5));
}
}
assert!(is_even(4));
uses the assert!
macro to ensure that is_even(4)
returns true
. If is_even(4)
returns false
, the test will fail, indicating a problem with the is_even
function's ability to correctly identify even numbers.
#[cfg(test)]
mod tests {
#[test]
fn you_can_assert_eq() {
assert_eq!(5, 5);
}
}
标签:even,tests,testing,module,assert,test,eq From: https://www.cnblogs.com/Answer1215/p/18030214