name: rust-tests-guidelines description: Rust测试编写指南
Rust测试编写指南
编写Rust代码新测试的指南。
指南
- 测试代码的公共API。
- 仅当私有组件高度复杂且难以通过公共API测试时,才测试私有API。
- 每当测试输出难以预测或比较时,使用
insta。 - 适当时,使用
proptest为关键不变性添加基于属性的测试。 - 测试代码应编写得像生产代码一样细心。避免不必要的重复,引入助手以减少样板代码并确保可读性。测试的意图应显而易见,如果不可能,则明确文档化。
- 不要在注释中引用确切的行号,因为它们可能会随时间变化。
代码组织
- 如果测试不依赖私有API,请将测试放在相关crate的
tests目录下。 tests目录应组织为一个crate,有一个main.rs文件和所有测试在模块中。参考trie_rs/tests目录作为示例。- 如果测试必须依赖私有API,请使用
#[cfg(test)]模块将它们与测试的代码放在一起。
处理外部C符号
查看CONTRIBUTING.md以获取有关如何处理Rust测试中未定义C符号的说明。