String 如何在Spock框架的feature method name中添加数字
我想在Spock框架的feature methods名称中添加序列号。我该怎么做 下面给出一段代码片段以供澄清:String 如何在Spock框架的feature method name中添加数字,string,spock,String,Spock,我想在Spock框架的feature methods名称中添加序列号。我该怎么做 下面给出一段代码片段以供澄清: class Test extends Specification { static def count = 0; def setup() { count++ } def '${count} This is first scenario'() { ... } def '${count} This i
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这是第二种情况
这是不可能的
在def'${count}中,这是第一个场景'()
您正在声明一个方法。无法动态生成方法名称
您可以使用数据驱动测试和@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
}
这应该起作用:
@Unroll
def "foo #iterationCount" { ... }
使用带有计数和删除静态修饰符的@Share Anotion 通过使用@Shared注释,您可以向Spock指示希望在所有测试方法中存活的对象
是的,注入参数不是我想要做的。谢谢你的回答。迭代计数必须出现在where块中,不是吗?不,它是一个内置变量。我是在setup方法中增加这个内置变量,还是自动增加?误解了你的问题#iterationCount用于数据驱动测试(示例:)。你要求的功能不存在;也许Spock扩展可以处理这个问题(不确定)。如果您在答案中添加一些代码会更好。