hamcrest 0.1.1

A port of the Hamcrest testing library
Documentation

Build Status

Hamcrest

A port of Hamcrest to Rust.

Installing

To use Hamcrest, add this to your Cargo.toml:

[dev-dependencies.hamcrest]

git = "https://github.com/carllerche/hamcrest-rust.git"

And this to your crate root:

#[cfg(test)]
extern crate hamcrest;

After a quick cargo build, you should be good to go!

Usage

Hamcrest supports a number of matchers. You'll have to use them just like any other Rust library. Alternatively you can also use all of them at once like this:

use hamcrest::prelude::*;

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)));

existing_{file,path,dir}

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

none

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

contains and contains_exactly

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()));

matches_regex

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

License

Licensed under either of

at your option.

Contribution

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.