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

Download history • Rust 包仓库 75/week @ 2024-03-24 • Rust 包仓库 63/week @ 2024-03-31 • Rust 包仓库 30/week @ 2024-04-07 • Rust 包仓库 22/week @ 2024-04-14 • Rust 包仓库 28/week @ 2024-04-21 • Rust 包仓库 14/week @ 2024-04-28 • Rust 包仓库 27/week @ 2024-05-05 • Rust 包仓库 22/week @ 2024-05-12 • Rust 包仓库 23/week @ 2024-05-19 • Rust 包仓库 56/week @ 2024-05-26 • Rust 包仓库 42/week @ 2024-06-02 • Rust 包仓库 117/week @ 2024-06-09 • Rust 包仓库 49/week @ 2024-06-16 • Rust 包仓库 26/week @ 2024-06-23 • Rust 包仓库 20/week @ 2024-06-30 • Rust 包仓库 93/week @ 2024-07-07 • Rust 包仓库

每月下载量193
8个crate中(5个直接使用)使用

MIT许可证

230KB
413

表格测试

Build Status codecov.io Current Crates.io Version

这个库旨在使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允许您添加类似givenwhenthen的注释,还可以使用descriptioncustom,让您能够以最佳方式记录测试。

示例

如果我们为输入两个值的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函数并执行了乘法,输出将如下所示

multiple inputs

正如我们所见,与正常的assert_eq!输出相比,这将更容易调试。但收益在于当我们处理更复杂的东西时。以下示例测试了更改名称的方法,结果如下

mutable struct

更多示例可以在示例文件夹中找到。

依赖关系

~245KB