更改参数化测试的名称

问题:

在JUnit4中使用参数化测试时,有没有办法设置自己的自定义测试用例名称?
我想将默认值 – [Test class].runTest[n]更改为有意义的内容。

回答:

 这个功能已经实现了
要使用更改参数化测试的名称,请说:

@Parameters(name="namestring")

 namestring是一个字符串,可以包含以下特殊占位符:

  •  {index} – 这组参数的索引。默认namestring{index}
  •  {0} – 来自此调用测试的第一个参数值。
  •  {1} – 第二个参数值
  • 等等

测试的最终名称将是测试方法的名称,后跟括号中的namestring,如下所示。
例如(从Parameterized注释的单元测试中改编):

@RunWith(Parameterized.class)
static public class FibonacciTest {

    @Parameters( name = "{index}: fib({0})={1}" )
    public static Iterable<Object&#91;&#93;> data() {
        return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 },
                { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
    }

    private final int fInput;
    private final int fExpected;

    public FibonacciTest(int input, int expected) {
        fInput= input;
        fExpected= expected;
    }

    @Test
    public void testFib() {
        assertEquals(fExpected, fib(fInput));
    }

    private int fib(int x) {
        // TODO: actually calculate Fibonacci numbers
        return 0;
    }
}

将会给出类似testFib[1: fib(1)=1]testFib[4: fib(4)=3]的名称。 (名称的testFib部分是@Test的方法名称)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Changing names of parameterized tests

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 76 = 85