3
是否可以基于第n次调用spock中的方法来模拟返回值?请注意,我不想指定传入的参数,因为它对于特定的测试用例无关紧要。基于spock中的调用次数模拟退回方法
例如,对于第一个调用它应该返回x,对于第二个调用它应该返回y。
是否可以基于第n次调用spock中的方法来模拟返回值?请注意,我不想指定传入的参数,因为它对于特定的测试用例无关紧要。基于spock中的调用次数模拟退回方法
例如,对于第一个调用它应该返回x,对于第二个调用它应该返回y。
是的,这是可能的。
someObject.someMethod(*_) >>> [ 'x', 'y' ]
它将在该方法的第二次调用返回x
上第一调用和y
。
实施例:
void "test something"() {
given:
def sample = Mock(Sample){
someMethod(_) >>> [ 'Hello', 'World' ]
}
expect:
sample.someMethod('foo') == 'Hello'
sample.someMethod('bar') == 'World'
}
class Sample {
def someMethod(def a) {
return a
}
}
正是我在找的东西。谢谢 – froi 2014-11-04 15:21:28
很奇怪的要求。这是不可能的,你需要/想要达到什么目标?什么情况? – Opal 2014-11-04 14:15:41
@Opal我有一个服务方法,我迭代,直到该方法返回一个特定的值,现在我只需要验证迭代过程/循环是否按预期工作。 – froi 2014-11-04 14:18:33