为了账号安全,请及时绑定邮箱和手机立即绑定

更改参数化测试的名称

更改参数化测试的名称

江户川乱折腾 2019-10-25 11:13:58
在JUnit4中使用参数化测试时,是否可以设置自己的自定义测试用例名称?我想将默认设置更改为[Test class].runTest[n]有意义的设置。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

此功能使其成为JUnit 4.11的一部分。


要使用更改参数化测试的名称,请说:


@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[]> 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)。

查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 336 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信