Rust 测试全解析:从基础到高级技巧
1. 文档测试属性
文档测试(doctests)和 #[test] 函数类似,也支持一些属性来修改测试的运行方式。这些属性紧跟在表示代码块的三重反引号之后,多个属性之间用逗号分隔。以下是一些常用属性:
- should_panic :表示特定文档测试中的代码在运行时应该 panic。
- ignore :只有在使用 cargo test --ignored 标志运行时才检查该代码段。
- no_run :表示给定的文档测试应该编译但不运行。
- compile_fail :告诉 rustdoc 文档示例中的代码不应编译,用于向用户表明特定用法不可行,也可用于检查类型的某些静态属性。例如:
# struct MyNonSendType(std::rc::Rc<()>);
fn is_send<T: Send>() {}
is_send::<MyNonSendType>();
不过, compile_fail 是一个比较粗略的工具,它不会指出代码无法编译的原因。如果需要更细粒度的编译错误测试,可以考虑使用 trybuild crate。
2. 额外的测试工具
测试不仅仅是
超级会员免费看
订阅专栏 解锁全文
1035

被折叠的 条评论
为什么被折叠?



