Rust项目测试与开发实践
在软件开发中,测试是保证代码质量和稳定性的重要环节。对于Rust项目,合理的测试策略和项目结构调整能够让开发过程更加高效和可靠。
1. 测试的实现与策略
由于 actix-web 的一些限制,我们无法在生产代码和测试代码之间共享应用启动逻辑,这可能会影响测试套件的可信度。因此,我们选择了全黑盒解决方案,即在每个测试开始时启动应用,并使用现成的HTTP客户端(如 reqwest )与之交互。
2. 测试的放置位置
Rust提供了三种编写测试的方式:
- 嵌入式测试模块 :与代码放在一起,通过 #[cfg(test)] 条件编译隐藏。它可以访问相邻代码中的私有结构体、方法、字段和函数,适用于“冰山项目”,即暴露的表面功能有限,但底层机制复杂的项目。例如:
// Some code I want to test
#[cfg(test)]
mod tests {
// Import the code I want to test
use super::*;
// My tests
}
- 外部测试文件夹 :位于
tests目录下,编译成独立的二进制文件。它和文档测试一样,对代码的访问权限与将项目作为依赖导入时相同,主要用于集成测试。 - 文档测试
超级会员免费看
订阅专栏 解锁全文

443

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



