mz_ore

Macro assert_err

Source
macro_rules! assert_err {
    ($val:expr, $($msg:tt)+) => { ... };
    ($val:expr) => { ... };
}
Available on crate feature test only.
Expand description

Asserts that the provided expression, that returns a Result, is Err.

§Motivation

The standard pattern for asserting a value is Err using the assert! macro is:

assert!(x.is_err());

The issue with this pattern is when the assertion fails it only prints false and not the value contained in the Ok(_) variant which makes debugging difficult.

§Examples

§Basic Use

use mz_ore::assert_err;
let error: Result<usize, usize> = Ok(42);
assert_err!(error);

§With extra message

use mz_ore::assert_err;
let other_val = 100;
let error: Result<usize, usize> = Ok(42);
assert_err!(error, "ohh noo! x {other_val}");