Macro ore::assert_contains [−][src]
macro_rules! assert_contains {
($left : expr, $right : expr $(,) ?) => { ... };
}
Expand description
Asserts that the left expression contains the right expression.
Containment is determined by the contains
method on the left type. If the
left expression does not contain the right expression, the macro will panic
with a descriptive message that includes both the left and right
expressions.
Motivation
The standard pattern for asserting containment uses the assert!
macro
assert!(left.contains(&right))
but this pattern panics with a message that only displays false
as the
cause. This hampers determination of the true cause of the assertion
failure.
Examples
Check whether a string contains a substring:
use ore::assert_contains;
assert_contains!("hello", "ello");
Check whether a slice contains an element:
use ore::assert_contains;
assert_contains!(&[1, 2, 3], 2);
Failed assertions panic:
ⓘ
use ore::assert_contains;
assert_contains!("hello", "yellow");