当前位置:嗨网首页>书籍在线阅读

03-组织测试

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.2 组织测试

在开发软件时,我们通常会编写两种测试:单元测试和集成测试。它们用于不同的目的,并与被测试代码进行不同的交互。单元测试总是轻量级、单个组件的测试,开发人员可以经常运行它们,从而提供更快速的反馈循环;而集成测试比较庞大,并根据环境和规格模拟真实的应用场景。Rust内置的测试框架为我们提供了编写和组织这些测试的合理默认参数。

  • 单元测试:单元测试通常编写在包含被测试代码的同一模块中。当这些测试的数量增加时,它们被组织成嵌套模块形式的一个实体。通常在当前模块中创建一个子模块,对该测试进行命名(例如根据约定将之命名为tests),并添加相应的注释属性(#[cfg(test)]),然后将所有与测试有关的函数放入其中。该属性只是告知编译器在测试模块中引用代码,但这只在执行cargo test命令时生效。稍后将详细介绍属性的相关信息。
  • 集成测试:集成测试在程序库根目录下的tests/目录中单独编写。它们被构造成本身就像是被测试程序库的使用者。tests/目录中的任何.rs 文件都可以添加一个 use声明来引入需要测试的任何公共API。

要编写上述任何一种测试,我们需要先熟悉一些和测试有关的原语。