Crate assertor

source ·
Expand description

Assertor makes test assertions and failure messages more human-readable.

Assertor is heavy affected by Java Truth in terms of API design and error messages.

Example

use assertor::*;

assert_that!("foobarbaz").contains("bar");
assert_that!("foobarbaz").ends_with("baz");

assert_that!(0.5).with_abs_tol(0.2).is_approx_equal_to(0.6);

assert_that!(vec!["a", "b"]).contains("a");
assert_that!(vec!["a", "b"]).has_length(2);
assert_that!(vec!["a", "b"]).contains_exactly(vec!["a", "b"]);

assert_that!(Option::Some("Foo")).has_value("Foo");

Failure cases

use assertor::*;
assert_that!(vec!["a", "b", "c"]).contains_exactly(vec!["b", "c", "d"]);
// missing (1)   : ["d"]
// unexpected (1): ["a"]
// ---
// expected      : ["b", "c", "d"]
// actual        : ["a", "b", "c"]

Modules

Macros

  • An assertion macro that panics when the assertion fails.
  • Only for library developers. An assertion macro for asserting assertion result.

Structs

  • Contains assertion results which will be shown in the assertion messages.
  • Code location.
  • Subject structure that contains actual value with auxiliary data (ex. line pos, description).

Enums

  • A piece of assertion message.

Traits