我想在这里放一个SET,怎么办?
我在spock where block new HashSet
上搜索了任何结果。
@Unroll
def "Sample"() {
expect:
.....
where:
base | exponent || result1 | result2
1 | 2 || 1 | {{I want to put a SET<ID> here, how?}}
}
答案 0 :(得分:1)
我认为您不仅是Spock的新手(我在上一个问题中注意到),而且还是Groovy的新手。没问题。 :-)您应该用Google搜索groovy set literal
并找到类似this page的东西。
在Spock中,您可以将where:
块中的变量定义为功能方法(测试方法)的方法参数,包括为其提供如下类型:
@Unroll
def "sample"(int base, int exponent, int result1, Set<Integer> result2) {
expect:
result2 instanceof Set
where:
base | exponent || result1 | result2
1 | 2 || 1 | [1, 2, 3]
}
这会将列表文字强制转换或强制转换为集合。或者,您可以节省很多键入操作,只需使用Groovy as
运算符,如我链接到的页面所示:
@Unroll
def "sample"() {
expect:
result2 instanceof Set
where:
base | exponent || result1 | result2
1 | 2 || 1 | [1, 2, 3] as Set<Integer>
}
无论您的Set<Integer>
类是什么,您都可以使用Set<Id>
来代替Id
。