6 个版本

使用旧的 Rust 2015

0.1.5 2017年11月13日
0.1.4 2017年11月9日
0.1.3 2017年1月9日
0.1.2 2016年10月10日
0.1.0 2015年7月24日

#426测试

Download history 84/week @ 2024-03-11 64/week @ 2024-03-18 49/week @ 2024-03-25 95/week @ 2024-04-01 51/week @ 2024-04-08 70/week @ 2024-04-15 71/week @ 2024-04-22 66/week @ 2024-04-29 59/week @ 2024-05-06 63/week @ 2024-05-13 128/week @ 2024-05-20 54/week @ 2024-05-27 71/week @ 2024-06-03 51/week @ 2024-06-10 61/week @ 2024-06-17 65/week @ 2024-06-24

每月 255 次下载
6 个 包中使用

MIT/Apache

37KB
823

Build Status

Hamcrest

Hamcrest 移植到 Rust

安装

要使用 Hamcrest,请将以下内容添加到您的 Cargo.toml

[dev-dependencies]
hamcrest = "*"

并将以下内容添加到您的包根目录

#[cfg(test)] #[macro_use] extern crate hamcrest;

在执行快速 cargo build 后,您应该可以正常使用了!

使用方法

Hamcrest 支持许多匹配器。最简单的方法是像这样导入所有匹配器:

use hamcrest::prelude::*;

如果您想更具有选择性,请确保还导入了 HamcrestMatcher trait。

equal_to

assert_that!(1, is(equal_to(1)));

close_to

assert_that!(1e-40f32, is(close_to(0.0, 0.01)));
assert_that!(1e-40f32, is_not(close_to(0.0, 0.000001)));

与...

assert_that!(1, is(less_than(2)));
assert_that!(1, is(less_than_or_equal_to(1)));
assert_that!(2, is(greater_than(1)));
assert_that!(2, is(greater_than_or_equal_to(2)));

现有_{文件,路径,目录}

assert_that!(&path, is(existing_path()));
assert_that!(&path, is(existing_file()));
assert_that!(&path, is_not(existing_dir()));

assert_that!(None, is(none::<int>()));
assert_that!(Some(1), is_not(none::<int>()));

任何事物

assert_that!(42, is(anything()));
assert_that!("test", is(anything()));

包含,包含_精确地,包含_按顺序

assert_that!(&vec!(1i, 2, 3), contains(vec!(1i, 2)));
assert_that!(&vec!(1i, 2, 3), not(contains(vec!(4i))));

assert_that!(&vec!(1i, 2, 3), contains(vec!(1i, 2, 3)).exactly());
assert_that!(&vec!(1i, 2, 3), not(contains(vec!(1i, 2)).exactly()));

assert_that!(&vec!(1i, 2, 3), contains(vec!(1i, 2)).in_order());
assert_that!(&vec!(1i, 2, 3), not(contains(vec!(1i, 3)).in_order()));

匹配正则表达式

assert_that!("1234", matches_regex(r"\d"));
assert_that!("abc", does_not(match_regex(r"\d")));

类型

assert_that!(123usize, is(type_of::<usize>()));
assert_that!("test", is(type_of::<&str>()));

所有...

assert_that!(4, all_of!(less_than(5), greater_than(3)));
assert_that!(
    &vec![1, 2, 3],
    all_of!(contains(vec![1, 2]), not(contains(vec![4])))
);

任何...

assert_that!(4, any_of!(less_than(2), greater_than(3)));
assert_that!(
    &vec![1, 2, 3],
    any_of!(contains(vec![1, 2, 5]), not(contains(vec![4])))
);

是(布尔)

assert_that!(true, is(true));
assert_that!(false, is(false));

许可证

根据您的选择之一许可

根据您的选择。

贡献

除非您明确说明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~3.5MB
~76K SLoC