parameterized icon indicating copy to clipboard operation
parameterized copied to clipboard

Consider adding a variant which inverses the declaration by being case by case

Open foresterre opened this issue 5 years ago • 0 comments

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

foresterre avatar Apr 29 '20 10:04 foresterre