我将JUnit4与JUnitParams一起使用进行测试,我想了解更多关于@TestCaseName
注释的使用。我了解@TestCaseName
与@Parameters
注释的用法,但我想了解如何将@TestCaseName
与@FileParmeters
注释一起使用。
>@TestCaseName
允许您修改测试用例名称在报告中的显示方式(例如,在IDE或Maven Surefire报告中(。默认命名为{method}({params}) [{index}]
。可以使用占位符创建自己的测试用例名称。参见 Javadoc ofjunitparams.naming.TestCaseName#value
:
单个测试用例名称的模板。此模板可以包含 宏,将在运行时替换为其实际值。
支持的宏包括:
让我们假设,我们正在测试斐波那契 序列生成器。我们有一个具有以下签名的测试
- {index}- 索引 参数集(从零开始(。提示:使用它来避免名称 重复。
- {params}- 参数集连接 逗点。
- {方法}- 测试方法名称。
- {0}、{1}、{2}- 当前参数集中按索引单个参数。 如果没有带有此类索引的参数,它将使用空字符串。
@Parameters({ "0,1", "8,34" }) public void testFibonacci(int indexInSequence, int expectedNumber) { ... }
下面是一些可以用作测试名称模板的示例:
{method}({params})
=> test斐波那契(0, 1(, testFibonacci(8, 34(fibonacci({0}) = {1}
=> 斐波那契(0( = 1, 斐波那契(8( = 34{0} element should be {1}
=> 0 元素应为 1,8 元素应为 34Fibonacci sequence test #{index}
=> 斐波那契数列检验 #0, 斐波那契数列检验 #1
@FileParameters
与@TestCaseName
没有任何关系 - 它只是一种从文件向测试方法提供参数的方法。使用上面的示例,您可以使用@FileParameters("/path/to/file.txt")
而不是@Parameters
并/path/to/file.txt
0,1
8,34
以达到相同的结果。