这是一个非常基本的问题,我确定我必须将其删除为重复对象,但是我没有找到答案。
在测试中:我以为我会尝试这样的事情。我想做的是让它在第一个电话中返回“ 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。
返回值的序列
要在连续调用中返回不同的值,请使用三重右移(>>>)运算符:subscriber.receive(_)>>> [“确定”,“错误”,“错误”,“确定”]
第一次调用将返回“ ok”,第二次调用将返回“ error”第三次调用,其余所有调用为“ ok”。的右侧必须是Groovy知道如何迭代的值;在此示例中,我们使用了简单列表。