单元测试是对一小段代码的测试,一般与需要测试的代码存放在src目录下的同一文件中。
约定在每个源代码文件中都新建一个tests模块存放单元测试代码,使用#[cfg(test)]进行标注。
测试模块
通过在tests模块上方标注#[cfg(test)]就成为了测试模块。
cargo test时编译和运行该部分测试代码。cargo build时提出这部分测试代码。
正是因为单元测试与源代码是在同一文件下的,所以才需要使用#[cfg(test)]来标注,保证将单元测试的代码排除在编译产出物之外。
集成测试就不需要,因为它放在独立的目录下。
测试私有函数
Rust通过私有性规则设计,允许测试私有函数。