我很难理解Spock测试框架的@Unroll
注释。在文档中,提到了
表示应该使数据驱动功能的迭代可见 作为外部世界的独立功能(IDE,报告等)
对我来说仍然没有多大意义。有人可以用外行的话来解释吗?
答案 0 :(得分:4)
@Unroll
将独立报告每个数据驱动的迭代,如Spock's website所示
我想添加有关使用@Unroll
。
如果您使用的是@Unroll
,请同时自定义您的测试名称,它会帮助您处理报告,例如:
@Unroll
def "maximum of #a and #b is #c"() { ... }
当使用@Unroll
时,每个数据驱动的迭代将被计为“测试”,这意味着您的测试计数将增加。
如果您有数据驱动测试,请使用@Unroll
。
答案 1 :(得分:1)
很棒的描述在Spock's website。我应该首先看一下(实际上是第二位,在doc之后)。主要特征是,如果发生故障,报告将指出其失败的确切测试数据,而不考虑其他情况。
报告中的替换
输出看起来像
maximum of two numbers[0] PASSED
maximum of two numbers[1] FAILED
Math.max(a, b) == c
| | | | |
| 7 0 | 7
42 false
maximum of two numbers[2] PASSED