parameterized
parameterized copied to clipboard
Consider adding a variant which inverses the declaration by being case by case
Current:
#[parameterized(
text = {
"aaa",
"bab",
"😃bc"
},
expected = {
'a',
'b',
'😃'
}
)]
fn test_peek_first_chars(text: &str, expected: char) {
assert_eq!(text.peek_first(), expected);
}
declared case by case:
#[parameterized'(
triple_a = {
"aaa",
'a',
},
bab = {
"bab",
'b',
},
emoji = {
text: "😃ab", // optionally named, but original order should be preserved for consistency
expected: '😃'
}
)]
fn test_peek_first_chars(text: &str, expected: char) {
assert_eq!(text.peek_first(), expected);
}
Advantages
- trivial to define test case naming
- potentially declaring a lot of test argument identifiers on test case declaration (that's why making them optional is a good idea I think)
Disadvantages:
- similar test case data spread out more
- potentially huge attribute declarations, with nesting which makes it potentially harder to read