- Notifications
You must be signed in to change notification settings - Fork8
A port of Hamcrest to Rust
License
Apache-2.0, MIT licenses found
Licenses found
Valloric/hamcrest2-rust
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A port ofHamcrest toRust.Fork of original hamcrest-rust (which is unmaintained) with extra matchers,better docs, support for Rust 2018 edition etc.
To use Hamcrest, add this to yourCargo.toml
:
[dev-dependencies]hamcrest2 = "*"
After a quickcargo build
, you should be good to go!
Hamcrest2 supports a number of matchers. The easiest way is to justuse
them all like this:
use hamcrest2::prelude::*;
If you want to be more selective make sure that you also import theHamcrestMatcher
trait.
assert_that!(1, eq(1));// also equal_to()assert_that!(1, not(eq(2)));
assert_that!(1, lt(2));// also less_than()assert_that!(1, leq(1));// also less_than_or_equal_to()assert_that!(2, gt(1));// also greater_than()assert_that!(2, geq(2));// also greater_than_or_equal_to()
assert_that!(123usize, type_of::<usize>());assert_that!("test", type_of::<&str>());
assert_that!("1234", matches_regex(r"\d"));assert_that!("abc", does_not(match_regex(r"\d")));
assert_that!(1e-40f32, close_to(0.0,0.01));assert_that!(1e-40f32, not(close_to(0.0,0.000001)));
let path =Path::new("./README.md");assert_that!(path, path_exists());assert_that!(path, file_exists());assert_that!(path, not(dir_exists()));
let var:Option<i8> =Some(5);assert_that!(var, has(5));let var:Result<i8,String> =Ok(5);assert_that!(var, has(5));
let var:Result<i8,String> =Ok(5);assert_that!(var, ok());assert_that!(&var, ok());assert_that!(Ok(5), ok::<i8,String>());assert_that!(&Ok(5), ok::<i8,String>());let var:Result<i8,String> =Err("bad!".to_string());assert_that!(var, not(ok()));assert_that!(&var, not(ok()));
let var:Result<i8,String> =Err("bad!".to_string());assert_that!(var, err());assert_that!(&var, err());assert_that!(Err("bad!".to_string()), err::<i8,String>());assert_that!(&Err("bad!".to_string()), err::<i8,String>());let var:Result<i8,String> =Ok(5);assert_that!(var, not(err()));assert_that!(&var, not(err()));
let var:Option<i8> =Some(5);assert_that!(var, some());assert_that!(&var, some());assert_that!(Some(1), some::<u8>());assert_that!(&Some(1), some::<u8>());let var:Option<i8> =None;assert_that!(var, not(some()));assert_that!(&var, not(some()));
let var:Option<i8> =None;assert_that!(var, none());assert_that!(&var, none());assert_that!(None, none::<u8>());assert_that!(&None, none::<u8>());assert_that!(Some(1), not(none::<u8>()));assert_that!(&Some(1), not(none::<u8>()));
assert_that!(&vec!(1,2,3), contains(vec!(1,2)));assert_that!(&vec!(1,2,3), contains(1));assert_that!(&vec!(1,2,3), not(contains(4i)));assert_that!(&vec!(1,2,3), contains(vec!(1,2,3)).exactly());assert_that!(&vec!(1,2,3), not(contains(vec!(1,2)).exactly()));assert_that!(&vec!(1,2,3), contains(vec!(1,2)).in_order());assert_that!(&vec!(1,2,3), not(contains(vec!(1,3)).in_order()));
assert_that!(&vec!(1,2,3), len(3));assert_that!(&vec!(1,2,3), not(len(4)));
assert_that!(&Vec::<i32>::new(), empty());assert_that!(&vec![1,2,3], not(empty()));
assert_that!(4, all!(lt(5), gt(3)));// also and!()assert_that!(&vec![1,2,3], all!(contains(vec![1,2]), not(contains(vec![4]))));
assert_that!(4, any!(less_than(2), greater_than(3)));// also or!()assert_that!(&vec![1,2,3], any!(contains(vec![1,2,5]), not(contains(vec![4]))));
assert_that!(true, is(true));assert_that!(false, is(false));
assert_that!(42, anything());assert_that!("test", is(anything()));
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE orhttp://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT orhttp://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in thework by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without anyadditional terms or conditions.
About
A port of Hamcrest to Rust
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Stars
Watchers
Forks
Packages0
Languages
- Rust100.0%