Skip to content

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

@foresterre

Description

@foresterre

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions