当前位置: 首页 > 面试题库 >

Java 更改参数化测试的名称

潘嘉颖
2023-03-14
问题内容

在JUnit4中使用参数化测试时,是否可以设置自己的自定义测试用例名称?

我想将默认设置更改为[Test class].runTest[n]有意义的设置。


问题答案:

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

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

@Parameters(name="namestring")

namestring是一个字符串,可以具有以下特殊的占位符:

  • {index} - the index of this set of arguments. The default namestring is {index}.
  • {0} - the first parameter value from this invocation of the test.
  • {1} - the second parameter value
  • and so on

测试的最终名称将是测试方法的名称,后跟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)。



 类似资料:
  • 主要内容:1. 使用XML传递参数,2. 通过@DataProvider传递参数,3. @DataProvider + 方法,4. @DataProvider + ITestContextTestNG中的另一个有趣的功能是参数化测试。 在大多数情况下,您会遇到业务逻辑需要大量测试的场景。 参数化测试允许开发人员使用不同的值一次又一次地运行相同的测试。 TestNG可以通过两种不同的方式将参数直接传递给测试方法: 使用 使用数据提供者 在本教程中,我们将向您展示如何通过XML 或将参数传递给方法。

  • 主要内容:1 参数化测试的介绍,2 使用@Parameter进行字段注入而不是构造函数,3 使用单个参数进行测试,4 识别单个测试用例1 参数化测试的介绍 自定义流道参数化实现参数化测试。运行参数化测试类时,将为测试方法和测试数据元素的叉积创建实例。 例如,要测试斐波那契函数,请编写: FibonacciTest的每个实例都将使用二元参数构造函数和方法中的数据值构造 @Parameters 。 2 使用@Parameter进行字段注入而不是构造函数 也可以将数据值直接注入字段中,而无需使用@Pa

  • 参数化测试可以用不同的参数多次运行测试。它们和普通的@Test方法一样声明,但是使用@ParameterizedTest注解。另外,您必须声明至少一个将为每次调用提供参数的来源(source)。 参数化测试目前是实验性功能。有关详细信息,请参阅实验性API中的表格。 @ParameterizedTest @ValueSource(strings = { "racecar", "radar", "a

  • JUnit 4引入了一项名为parameterized tests的新功能。 参数化测试允许开发人员使用不同的值反复运行相同的测试。 创建参数化测试需要遵循五个步骤。 使用@RunWith(Parameterized.class)注释测试类。 创建一个使用@Parameters注释的公共静态方法,该方法返回一个对象集合(作为数组)作为测试数据集。 创建一个公共构造函数,它接受相当于一行“测试数据”

  • TestNG中另一个有趣的功能是parametric testing 。 在大多数情况下,您会遇到业务逻辑需要大量不同测试的情况。 Parameterized tests允许开发人员使用不同的值反复运行相同的测试。 TestNG允许您以两种不同的方式将参数直接传递给您的测试方法 - 用testng.xml 使用数据提供商 使用testng.xml传递参数 使用此技术,您可以在testng.xml文

  • 使用Robolectric的参数化测试 原文链接 : Parameterized testing with Robolectric 译文出自 : 开发技术前线 www.devtf.cn 译者 : Lollypo 校对者: Chaos 状态 : 校对完成 在目前的项目中我们使用Robolectric为Android应用程序编写单元测试,它一直都干的不错。最近我需要编写一个测试用例,通过每次使用不同的