单元测试是对一小段代码的测试,一般与需要测试的代码存放在src目录下的同一文件中。

约定在每个源代码文件中都新建一个tests模块存放单元测试代码,使用#[cfg(test)]进行标注。

测试模块

通过在tests模块上方标注#[cfg(test)]就成为了测试模块。

  • cargo test时编译和运行该部分测试代码。
  • cargo build时提出这部分测试代码。

正是因为单元测试与源代码是在同一文件下的,所以才需要使用#[cfg(test)]来标注,保证将单元测试的代码排除在编译产出物之外。 集成测试就不需要,因为它放在独立的目录下。

测试私有函数

Rust通过私有性规则设计,允许测试私有函数。