Rust 并不能测试二进制项目

二进制包的集成测试
如果我们的项目是一个只包含src/main.rs文件而没有src /lib.rs 文件的二进制 crate ,我们就不能在 tests目录中创建集成测试,也不能引入src/main中定义的函数.rs文件进入范围,并带有一条use语句。只有库 crate 公开了其他 crate 可以使用的函数;二进制 crates 旨在自行运行。

这是提供二进制文件的 Rust 项目有一个简单的src/main.rs文件的原因之一,该文件调用位于 src/lib.rs 文件中的 逻辑。使用该结构,集成测试可以测试库 crateuse以使重要功能可用。如果重要功能有效,那么 src/main.rs文件中的少量代码也可以正常工作,并且不需要测试那少量代码。

概括
Rust 的测试功能提供了一种方法来指定代码应该如何运行,以确保它继续按您的预期工作,即使您进行了更改。单元测试分别运行库的不同部分,并且可以测试私有实现细节。集成测试检查库的许多部分是否正确地协同工作,并且它们使用库的公共 API 来测试代码,就像外部代码使用它一样。尽管 Rust 的类型系统和所有权规则有助于防止某些类型的错误,但测试对于减少与代码预期行为方式有关的逻辑错误仍然很重要。

https://doc.rust-lang.org/book/ch11-03-test-organization.html

 

分类: 默认 标签: 发布于: 2022-03-30 15:51:57, 更新于: 2022-03-30 15:51:57