Rust系统编程之自动化测试
1.基础测试模板
1 | |
1.1 断言宏
1 | |
需要要断言的对象实现了PartialEq 和 Debug trait。标准库默认都实现了,自定义类型可以添加#[derive(PartialEq, Debug)] 注解。
1.2 should_panic
1 | |
在panic时提供额外信息。
1.3 使用Result<T, E>
1 | |
此时可以测试返回Result的函数了。
2.控制测试用例运行
2.1 指定单线程
因为测试用例是默认并发的,可能会出现竞争。使用如下命令指定单线程可以避免这个问题。
1 | |
2.2 显示输出
默认测试屏蔽了println!等宏的输出信息,可以使用如下命令开启输出。
1 | |
2.3 运行指定测试用例
指定某个测试用例
1 | |
过滤运行多个测试,下面的代码运行所有以pe开头的测试用例
1 | |
忽略某些测试
1 | |
3.测试目录组织
3.1 单元测试
一般就是在src的module中直接添加带有测试注解的函数即可,与具体的代码绑定。
3.2 集成测试
一般是在package根目录下建立tests文件夹来编写公开接口的测试用例。
1 | |
对于bin crate,建议内部嵌入一个library crate,在main.rs中调用lib.rs的代码,而集成测试只对lib.rs中的接口进行测试。
Rust系统编程之自动化测试
http://helloymf.github.io/2023/04/17/rust-xi-tong-bian-cheng-zhi-zi-dong-hua-ce-shi/