[Rust Unit testing] assert & assert_eq
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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2023-02-23 [Typescript] NoInfer
2023-02-23 [Typescript] OVerride external library Types
2022-02-23 [Whole Web] SQL INJECTION
2022-02-23 [Whole Web] CROSS SITE SCRIPTING (XSS)
2019-02-23 [Functional Programming] Pointy Functor Factory
2019-02-23 [Functional Programming] Async IO Functor
2017-02-23 [HTML5] Focus management using CSS, HTML, and JavaScript