我有一个对象列表,让它成为整数:
list = [1, 3, 8]
我需要一个对象列表,这些对象实际上是这些整数的提供者。即:
providersList = [p1.getInteger() = 1, p2.getInteger() = 3, p3.getInteger() = 8] //pseudo code
我该如何编码?
更新
抱歉,看起来我有点困惑。这是我对Spock的第一次经历,所以我可能会混淆这些术语和想法。
我想模拟一个对象列表。当然,每个对象都有自己的方法。测试将只调用该对象的一种方法。我不需要实现它,因为我知道究竟是什么返回此方法。这些返回值存储在我已经拥有的一些列表中。
即。我需要模拟一个对象列表[p1,p2,p3],其中每次调用object.getInteger()都会返回一些我已经知道的整数,并且我有一个这些整数的列表:[i1,i2,i3]:p1。 getInteger()= i1等。
如何在列表[i1,i2,i3]的帮助下模拟[p1,p2,p3]列表?
答案 0 :(得分:0)
您可以尝试:
@Grab('org.spockframework:spock-core:0.7-groovy-2.0')
@Grab('cglib:cglib-nodep:3.1')
import spock.lang.*
class Test extends Specification {
def 'some spec'() {
given:
def mocks = [1, 2, 3].collect { i -> GroovyMock(SomeClass) {
getInteger() >> i
}
}
expect:
mocks*.getInteger().containsAll([1,2,3])
}
}
class SomeClass {
Integer getInteger() {
0
}
}