Crates.io | hamcrest |
lib.rs | hamcrest |
version | 0.1.5 |
source | src |
created_at | 2015-07-24 22:04:41.710018 |
updated_at | 2017-11-13 20:21:24.467195 |
description | A port of the Hamcrest testing library |
homepage | |
repository | https://github.com/ujh/hamcrest-rust |
max_upload_size | |
id | 2670 |
size | 59,615 |
To use Hamcrest, add this to your Cargo.toml
:
[dev-dependencies]
hamcrest = "*"
And this to your crate root:
#[cfg(test)] #[macro_use] extern crate hamcrest;
After a quick cargo build
, you should be good to go!
Hamcrest supports a number of matchers. The easiest way is to just use
them all like this:
use hamcrest::prelude::*;
If you want to be more selective make sure that you also import the HamcrestMatcher
trait.
assert_that!(1, is(equal_to(1)));
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));
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.