Spock的@Unroll注释的目的是什么?

时间:2018-05-21 07:51:10

标签: spock

我很难理解Spock测试框架的@Unroll注释。在文档中,提到了

  

表示应该使数据驱动功能的迭代可见    作为外部世界的独立功能(IDE,报告等)

对我来说仍然没有多大意义。有人可以用外行的话来解释吗?

2 个答案:

答案 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