在单元测试中,我模拟了一个服务(这是被测类的引用)。
喜欢:
given:
def mockXxService = mockFor(XxService)
mockXxService.demand.xxx(1) {->}
service.xxService = mockXxService
when:
service.yyy()
then:
// verify mockXxService's xxx method is invoked.
对于我的单元测试,我想验证是否调用了
mockXxService.xxx()
。但是grails文档的mockControl.verify()
对我不起作用。不知道如何正确使用它。它与Mockito的verify方法非常相似。
有人知道吗?
最佳答案
您正在使用spock
进行单元测试,应该可以轻松使用spock的MockingApi
检查调用:
given:
def mockXxService = Mock(XxService)
service.xxService = mockXxService
when:
service.yyy()
then:
1 * mockXxService.xxx(_) //assert xxx() is called once
您可以从spockframework docs上获得有关模拟的更多见解。
您甚至可以在模拟相关服务的同时对它进行存根和模拟:
def mockXxService = Mock(XxService) {
1 * xxx(_)
}
关于unit-testing - Grails单元测试验证模拟方法称为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21520212/