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§

  • Module for testing the assertor library itself. Expected to be used by library developers.

Macros§

  • An assertion macro that panics when the assertion fails.
  • Only for library developers. An assertion macro to get the result of assertion without throwing panic. Expected to be used for testing assertion library.

Structs§

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

Enums§

  • A piece of assertion message.

Traits§