如何使模拟方法 return 具有连续调用的连续值
How to make a mocked method return a succession of values with a succession of invocations
这是一个非常基本的问题,我确定我必须删除它作为一个骗子...但我还没有找到答案。
在测试中:我想我会尝试这样的事情。我想要做的是在第一个电话 return '333' 和第二个电话 '555' 。
gb.reader = Mock( XMLStreamReader ){
getAttributeValue( _, _ ) >> [ '333', '555' ]
}
在应用代码中:
int id = reader.getAttributeValue( null, 'ID').toInteger()
结果:
java.lang.NumberFormatException: For input string: "[333, 555]"
首先想到的是:我们需要一台发电机。但这是 Groovy,而不是 Python。
只需使用 >>>
,请参阅 Spock 手册第 "returning sequences of values" 章。
这是一个非常基本的问题,我确定我必须删除它作为一个骗子...但我还没有找到答案。
在测试中:我想我会尝试这样的事情。我想要做的是在第一个电话 return '333' 和第二个电话 '555' 。
gb.reader = Mock( XMLStreamReader ){
getAttributeValue( _, _ ) >> [ '333', '555' ]
}
在应用代码中:
int id = reader.getAttributeValue( null, 'ID').toInteger()
结果:
java.lang.NumberFormatException: For input string: "[333, 555]"
首先想到的是:我们需要一台发电机。但这是 Groovy,而不是 Python。
只需使用 >>>
,请参阅 Spock 手册第 "returning sequences of values" 章。