#assert #test

弃用 assertify

弃用:使用 assert2 进行更好的断言

5 个不稳定版本

0.7.1 2024年3月15日
0.7.0 2022年12月13日
0.6.1 2022年10月22日
0.6.0 2019年12月11日
0.5.0 2019年12月10日

#140 in #assert

MIT/Apache

11KB
95

弃用 — 使用 assert2

请使用 assert2 替代此包。 assertify! 可在任何地方替换为更强大的 assert2::assert!,而 testify! 可以通过简短的宏实现

macro_rules! testify {
    ($name:ident, $($test:tt)+) => {
        #[test]
        fn $name() {
            ::assert2::assert!($($test)+);
        }
    };
}

assertify!(expr)

弃用: 使用 assert2::assert!

expr 生成具有友好失败信息的断言。如果 expr 是一个二元表达式,实际值应在左侧,预期值应在右侧。

#[test]
fn simple_eq() {
    assertify!(1 + 2 == 0);
}
---- tests::simple_eq stdout ----
thread 'tests::simple_eq' panicked at 'failed: 1 + 2 == 0
  actual:      3
  expected: == 0
', src/lib.rs:98:9

这比 assert_eq! 生成消息有重大改进,因为失败信息显示了失败的表达式。

#[test]
fn simple_eq_traditional() {
    assert_eq!(1 + 2, 0);
}
---- tests::simple_eq_traditional stdout ----
thread 'tests::simple_eq_traditional' panicked at 'assertion failed: `(left == right)`
  left: `3`,
 right: `0`', src/lib.rs:103:9

testify!(name,expr)

弃用: 使用以下内容

macro_rules! testify {
    ($name:ident, $($test:tt)+) => {
        #[test]
        fn $name() {
            ::assert2::assert!($($test)+);
        }
    };
}

生成一个名为 name 的测试函数,断言 expr 是真实的。

testify!(concat_literals, concat("a", "b") == "ab");

同样,失败信息易于理解

---- tests::concat_literals stdout ----
thread 'tests::concat_literals' panicked at 'failed: concat("a", "b") == "aX"
  actual:      "ab"
  expected: == "aX"
', src/lib.rs:106:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

兼容性

这需要至少 Rust 版本 1.45(2020年7月发布)。

许可证

本项目根据 Apache 2 和 MIT 许可证双许可。您可以选择使用其中之一。

贡献

除非您明确声明,否则您提交的任何贡献,根据 Apache 2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~1.5MB
~36K SLoC