macro_rules! assert_snap {
($actual:expr, $expected:expr) => { ... };
($actual:expr, $expected:expr,$($tail:tt)+) => { ... };
(
@assert_str,
// &str
$actual:expr,
// &str
$expected:expr,
// Rules token stream
$($rules:tt)+
) => { ... };
(
@assert_str,
// &str
$actual:expr,
// &str
$expected:expr
) => { ... };
(@munch $vec:ident;) => { ... };
(@munch $vec:ident; [$limit:expr] $pattern:expr => $replacement:expr , $($rest:tt)*) => { ... };
(@munch $vec:ident; [$limit:expr] $pattern:expr => $replacement:expr) => { ... };
(@munch $vec:ident; $pattern:expr => $replacement:expr , $($rest:tt)*) => { ... };
(@munch $vec:ident; $pattern:expr => $replacement:expr) => { ... };
}Expand description
Asserts any types implementing Display.
§Syntax
ⓘ
assert_snap!(actual, expected);
assert_snap!(actual, expected, "pattern" => "replacement");
assert_snap!(actual, expected, [limit] "pattern" => "replacement");
assert_snap!(actual, expected, rule1, rule2, ...);§Parameters
$actual: An expression implementingDisplayor convertible viaformat!("{actual}").$expected: An expression implementingDisplayor convertible viaformat!("{expected}").[limit] pattern => replacement: Optional redaction rules to scrub dynamic data (e.g. timestamps, UUIDs) before comparison.limit(optional):[n]limits replacement to the firstnmatches. If omitted or[0], all matches are replaced.pattern: A regex pattern string.replacement: Replacement string or regex group reference (e.g."$1").
§Examples
Basic comparison:
use assert_snap::assert_snap;
assert_snap!("hello world", "hello world");Comparison with redaction rules:
use assert_snap::assert_snap;
assert_snap!(
"User id is 12345",
"User id is [ID]",
r"\d+" => "[ID]"
);Comparison with redaction rules with match limits:
use assert_snap::assert_snap;
assert_snap!(
"secret and secret",
"**** and secret",
[1] "secret" => "****"
);