name: 编写-rust-测试 description: 编写Rust测试以验证Rust代码的正确性。
编写Rust测试
为Rust代码编写新的Rust测试。
参数
<path>: Rust crate或文件的路径。<path 1> <path 2>: 多个crate/文件路径。
如果路径不包含src/,假设它在src/redisearch_rs目录中。例如,numeric_range_tree变为src/redisearch_rs/numeric_range_tree。
如果路径指向一个目录,考虑该目录中的所有Rust文件。
指南
生成的测试必须遵循/rust-tests-guidelines中概述的指南。
测试内容
确保所有公共API都被彻底测试,包括边缘案例、错误条件和分支。
使用/check-rust-coverage来确定哪些行未被测试覆盖。
避免冗余测试
在编写每个测试之前,明确识别它将覆盖哪个分支或代码路径,该路径是现有测试尚未覆盖的。未覆盖的行不足以作为理由——要问为什么它未被覆盖,以及是否可以通过已测试的入口点到达。
两个测试是冗余的,如果它们在测试代码中执行相同的分支集合。仅输入值不同但不改变控制流的情况不是不同的场景。
不要为以下内容编写独立测试:
- 琐碎的特征委托 —
Default、From或类似的特征实现,这些是单行委托给已测试的构造函数,因为它们将通过传递性被覆盖。
添加测试后,双重检查每个新测试至少覆盖一个没有其他测试(现有或新的)覆盖的分支。删除任何不满足此条件的测试。