4个版本
使用旧的Rust 2015
0.2.1 | 2018年4月9日 |
---|---|
0.2.0 | 2018年3月6日 |
0.1.1 | 2018年3月1日 |
0.1.0 | 2018年3月1日 |
在测试分类中排名#691
每月下载量193次
在8个crate中(5个直接使用)使用
230KB
413 行
表格测试
这个库旨在使Rust中的表格测试更加可靠。使用基本的Rust进行表格测试的主要问题是assert_eq!
调用panic!
。这意味着当断言失败时,测试函数的其余部分将不会执行。在表格测试的情况下,可能会导致多个用例未测试,从而使测试输出不可靠。
用法
将此crate指定为[dev-dependencies]
。
[dev-dependencies]
table-test = "0.2.1"
#[cfg(test)] // <-- not needed in integration tests
#[macro_use]
extern crate table_test;
表格迭代器返回一个元组(test_case, input, expected)
。如果您有多个输入,只需使用输入的元组。test_case
允许您添加类似given
、when
和then
的注释,还可以使用description
和custom
,让您能够以最佳方式记录测试。
示例
如果我们为输入两个值的add
函数创建一个简单的测试
#[test]
fn test_add() {
let table = vec![
((1, 2), 3),
((2, 5), 7),
((0, 0), 0),
((0, 1), 1),
((2, 2), 4),
];
for (validator, (input_1, input_2), expected) in table_test!(table) {
let actual = add(input_1, input_2);
validator
.given(&format!("{}, {}", input_1, input_2))
.when("add")
.then(&format!("it should be {}", expected))
.assert_eq(expected, actual);
}
}
如果我们错误地实现了add
函数并执行了乘法,输出将如下所示
正如我们所见,与正常的assert_eq!
输出相比,这将更容易调试。但收益在于当我们处理更复杂的东西时。以下示例测试了更改名称的方法,结果如下
更多示例可以在示例文件夹中找到。
依赖关系
~245KB