如何在Spock框架中的特征方法名称中添加数字

时间:2016-03-23 04:11:54

标签: string spock

我想在Spock框架的功能方法名称中添加序列号。我怎么能这样做?

提供了一段代码片段以供澄清:

class Test extends Specification {

    static def count = 0;

    def setup() {
        count++
    }

    def '${count} This is first scenario'() {
        ...
    }

    def '${count} This is second scenario'() {
        ...
    }

}

运行此代码后,它会显示在报告中:

  

$ {count}这是第一个场景

     

$ {count}这是第二种情况

但我期待:

  

1这是第一个场景

     

2这是第二种情况

3 个答案:

答案 0 :(得分:1)

这应该有效:

@Unroll
def "foo #iterationCount" { ... }

答案 1 :(得分:0)

这是不可能的。

def '${count} This is first scenario'()中,您宣布了一种方法。无法动态生成方法名称。

您可以使用数据驱动的测试和@Unroll将测试参数注入方法名称的模板中,但我认为这不是您需要的。

一个例子,来自文档:

@Unroll
def "maximum of #a and #b is #c"() { 
 expect:
    Math.max(a, b) == c

    where:
    a | b || c
    3 | 5 || 5
    7 | 0 || 7
    0 | 0 || 0
}

答案 2 :(得分:0)

使用@Share anotation with count并删除static modifier。

  

你可以通过使用@Shared注释向Spock指出你希望在所有测试方法中存活的对象。