在我的单元测试中,我模拟了一个服务(这是被测试类的参考)。
像:
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的验证方法非常相似。
有人知道吗?
答案 0 :(得分:3)
您正在使用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(_)
}
答案 1 :(得分:2)
如果你想在Grails单元测试中使用类似Mockito的行为 - 只需使用Mockito。它比Grails的嘲弄方法更方便。