我正在使用Spock框架进行测试,我在where子句中有关于多变量赋值的问题.
我有以下测试用例:
def "sending a message delegates to message sender"() {
when:
sendMessage(x,y)
then:
1 * messageSender.send(x,y)
where:
x << 1
y << 2
}
Run Code Online (Sandbox Code Playgroud)
我想用一个赋值操作替换where子句中的多个变量赋值.我试过了:
where:
[x,y] << [1,2]
Run Code Online (Sandbox Code Playgroud)
但得到了一个MissingMethod异常.我假设这是因为表达式[1,2]被视为数组而不是列表.
请注意以下工作:
where:
[x,y] << [1,2].combinations()
Run Code Online (Sandbox Code Playgroud)
看起来combination()方法返回一个List类型,但是尽管以下方法不起作用:
where:
[x,y] << [1,2].asList()
Run Code Online (Sandbox Code Playgroud)
使用combination()是违反直觉的,所以我想知道是否有一种简单,优雅的方式在Spock中初始化多个变量.
编辑:我正在使用spock版本0.7-groovy-2.0
必须如下所述进行多项任务:
[x, y] << [[1,2]]
Run Code Online (Sandbox Code Playgroud)
这是一个人为的例子,其中一个组合的测试失败.
多个可变数据管道使用SQL ResultSet中的示例,这与上面的示例非常相似.
归档时间: |
|
查看次数: |
4159 次 |
最近记录: |