2 个版本
0.0.2 | 2021 年 10 月 14 日 |
---|---|
0.0.1 | 2021 年 10 月 13 日 |
0.0.0 |
|
#830 in 测试
19KB
351 行
RsUnit
RsUnit 是一个 Rust 的单元测试框架。它是对本地 cargo test
接口的包装。RsUnit 模拟了 ExUnit 的结构和行为。
结构
测试套件总是包含在一个 rs_unit
块中。在这个 rs_unit
块内部可以有多个 describe
块。一个 describe
块用于组织相关的测试。RsUnit 的核心是 describe
块。这个块由三个部分组成;一个 setup
、test
和 teardown
部分。其中,setup
和 teardown
是可选的。唯一必须的部分是 test
。
设置
setup
块包含在测试之前运行的逻辑。这里我们区分了 setup
和 setup_all
。setup
块会与每个测试一起运行。而 setup_all
块只会在每个测试之前运行一次。数据库或驱动器的设置是 setup
块的使用案例。
测试
每个 describe
块包含多个 test
块。数量没有限制,但请注意保持测试尽可能短。
清理
teardown
块会在测试之后运行。与 setup
块类似,您可以选择使用 teardown
和 teardown_all
。一个典型的使用案例是在 setup
块中创建的数据库或文件夹的删除。
示例
use rs_unit::rs_unit;
pub fn add_number(number_one: i32, number_two: i32) -> i32 {
number_one + number_two
}
rs_unit! {
describe "add_number/2" {
test "success: Add two numbers" {
let result = add_number(1, 1);
assert_eq!(result, 2);
}
}
}
特别感谢
我要感谢 Discord 上的 NyxCode 和 Yandros FR-ES,以及 rodrimati1992,他们帮助我更好地理解过程宏的工作原理,有耐心并指引我正确的方向。
许可证
MIT 许可证 - 版权所有 (c) 2021 Marius Wilms
依赖项
~1.5MB
~35K SLoC