在 Rust 中,我们可以使用 salvo
库来编写单元测试和集成测试。首先,确保你已经安装了 salvo
库。如果没有,请运行以下命令来添加它:
cargo add salvo
接下来,我们将编写一个简单的 Rust 项目,包括一个库和一个可执行文件。我们将为库编写单元测试,并为可执行文件编写集成测试。
- 创建一个新的 Rust 项目:
cargo new salvo_example cd salvo_example
- 在
Cargo.toml
文件中,添加salvo
和test
依赖项:
[dependencies] salvo = "0.1" [features] default = ["lib"] lib = [] test = []
- 在
src/lib.rs
文件中,编写一个简单的库函数:
// src/lib.rs pub fn add(a: i32, b: i32) -> i32 { a + b }
- 在
src/main.rs
文件中,编写一个可执行文件,调用库函数:
// src/main.rs mod lib; fn main() { let result = lib::add(3, 4); println!("3 + 4 = {}", result); }
- 在
tests/lib.rs
文件中,编写单元测试:
// tests/lib.rs use super::*; #[cfg(test)] mod tests { use super::*; #[test] fn test_add() { assert_eq!(add(1, 2), 3); assert_eq!(add(-1, 1), 0); assert_eq!(add(0, 0), 0); } }
- 在
tests/integration.rs
文件中,编写集成测试:
// tests/integration.rs mod lib; #[cfg(test)] mod tests { use super::*; #[test] fn test_main() { std::env::set_var("RUST_LOG", "info"); std::process::Command::new("target/debug/salvo_example") .status() .expect("Failed to execute the executable"); } }
现在,你可以运行以下命令来执行单元测试和集成测试:
cargo test --lib cargo test --bin salvo_example
这将分别运行库的单元测试和可执行文件的集成测试。