给定以下内容,我如何使用Spock模拟processMessage(),以便可以检查processBulkMessage()调用n次processMessage(),其中n是BulkMessage中的消息数?
class BulkMessage {
List messages
}
class MyService {
def processBulkMessage(BulkMessage msg) {
msg.messages.each {subMsg->
processMessage(subMsg)
}
}
def processMessage(Message message) {
}
}
最佳答案
您可以使用spies和部分模拟(需要Spock 0.7或更高版本)。
def subscriber = Spy(SubscriberImpl, constructorArgs: ["Fred"])
subscriber.receive(_) >> "ok"
subscriber.receive(_) >> { String message -> callRealMethod(); message.size() > 3 ? "ok" : "fail" }