在JUnit4中使用参数化测试时,是否可以设置自己的自定义测试用例名称?
我想将默认设置更改为[Test class].runTest[n]有意义的设置。
[Test class].runTest[n]
此功能使其成为JUnit 4.11的一部分。
要使用更改参数化测试的名称,请说:
@Parameters(name="namestring")
namestring是一个字符串,可以具有以下特殊的占位符:
namestring
{index}
{0}
{1}
测试的最终名称将是测试方法的名称,后跟namestring方括号,如下所示。
例如(从单元测试改编为Parameterized注释):
Parameterized
@RunWith(Parameterized.class) static public class FibonacciTest { @Parameters( name = "{index}: fib({0})={1}" ) public static Iterable<Object[]> 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)。
testFib[1: fib(1)=1]
testFib[4: fib(4)=3]