#assertions #tdd #bdd #cargo-toml #assert-that

easy-assert

在测试中实现可读性断言的库

5 个版本

0.2.1 2023年9月18日
0.1.5 2023年5月16日
0.1.4 2023年5月10日
0.1.2 2022年4月12日
0.1.0 2022年4月11日

#280测试

每月 42 次下载

MIT/Apache

43KB
817

easy-assert crate,帮助你创建更好的测试

将依赖添加到你的 Cargo.toml

[dev-dependencies]
assert-that = "0.2.1"

示例:NumericAssert::assert_that(actual(-1)).is_equal().to(expected(-1));

如果你需要自定义描述,或者无法实现 Display 特性)StringAssert::assert_that(actual_with(value, description_fucntion)) .length() .is(expected_with(5, description_fucntion));

如果你需要自定义匹配

CustomAssert::assert_that(actual(val1)) .matches_by(|a, b| a.eq(b)) .to(expected(val2));

可用断言:NumericAssert -> is_equal, is_not_equal, is_less, is_less_or_equal, is_greater, is_greater_or_equal

StringAssert->is_equal,is_not_equal,length,contains

BooleanAssert->is_true,is_false

OptionAssert -> is_none, is_some, contains 目前仅支持自定义断言或列表断言

ListAssert -> 
    length;
    with_element_matcher ->
        is_equal_to ->
            in_any_order;
            in_order;
        contains ->
            in_any_order;
            in_exact_order; - [A,B,C,A,D].contains([B,C]).in_exact_order() = true/[A,B,C,A,D].contains([B,D]).in_exact_order() = false
            just_in_order; - [A,B,C,A,D].contains([B,C]).in_exact_order() = true/[A,B,C,A,D].contains([B,D]).in_exact_order() = true
        is_not_equal_to ->
            in_any_order; - At least one element should be different
            in_order; - All elements can be same, but order different
        does_not_contain ->
            all(); - All elements from expected should be missed in actual
            at_least_one(); - At least one element from expected should be missed in actual
        

CustomAssert->matches_by

它是开源的,欢迎提交合并请求或提出改进建议。

依赖项

约150KB