0

我使用 JUnit4 和 JUnitParams 进行测试,我想了解更多关于@TestCaseName注释的用法。我了解@TestCaseNamewith@Parameters注解的用法,但我想知道如何使用@TestCaseName注解@FileParmeters

4

1 回答 1

0

@TestCaseName允许您修改测试用例名称在报告中的显示方式(例如,在您的 IDE 或 Maven Surefire 报告中)。默认命名为{method}({params}) [{index}]. 您可以使用占位符来创建自己的测试用例名称。请参阅 Javadoc junitparams.naming.TestCaseName#value

单个测试用例名称的模板。此模板可以包含宏,这些宏将在运行时被它们的实际值替换。

支持的宏是:

  • {index} - 参数集的索引(从零开始)。提示:使用它来避免名称重复。
  • {params} - 以逗号连接的参数集。
  • {method} - 测试方法名称。
  • {0}{1}{2} - 当前参数集中按索引的单个参数。如果没有具有此类索引的参数,它将使用空字符串。
让我们假设,我们正在测试斐波那契数列生成器。我们有一个带有以下签名的测试

@Parameters({ "0,1", "8,34" })
public void testFibonacci(int indexInSequence, int expectedNumber) { ... }

以下是一些示例,可用作测试名称模板:

  • {method}({params})=> testFibonacci(0, 1), testFibonacci(8, 34)
  • fibonacci({0}) = {1}=> 斐波那契(0) = 1, 斐波那契(8) = 34
  • {0} element should be {1}=> 0 元素应该是 1,8 元素应该是 34
  • Fibonacci sequence test #{index}=> 斐波那契数列测试#0,斐波那契数列测试#1

@FileParameters没有任何关系@TestCaseName- 它只是一种从文件向测试方法提供参数的方法。使用上面的示例,@Parameters您可以使用@FileParameters("/path/to/file.txt")并拥有一个/path/to/file.txtwith 内容

0,1
8,34

以达到相同的结果。

于 2020-06-03T08:35:23.230 回答