macro_rules! enum_tests {
(
enum_type: $enum_name:ty,
default_test: ($default_test_name:ident, $default_variant:expr),
clone_test: ($clone_test_name:ident, $test_variant:expr),
debug_test: ($debug_test_name:ident, $debug_variant:expr, $debug_str:expr $(,)?),
) => { ... };
}Expand description
Generate standard enum tests (default, clone, debug).
This macro generates common test cases for enums that implement Default, Clone,
Copy, Debug, and PartialEq. It reduces boilerplate in test modules.
§Examples
ⓘ
#[cfg(test)]
mod tests {
use super::*;
enum_tests! {
enum_type: MyEnum,
default_test: (test_default, MyEnum::DefaultVariant),
clone_test: (test_clone, MyEnum::OtherVariant),
debug_test: (test_debug, MyEnum::OtherVariant, "OtherVariant"),
}
}