Unit testing Grails单元测试验证模拟方法调用
在我的单元测试中,我模拟了一个服务(它是被测试类的一个引用) 比如: 对于我的单元测试,我想验证是否调用了Unit testing Grails单元测试验证模拟方法调用,unit-testing,grails,mockito,grails-2.0,Unit Testing,Grails,Mockito,Grails 2.0,在我的单元测试中,我模拟了一个服务(它是被测试类的一个引用) 比如: 对于我的单元测试,我想验证是否调用了mockXxService.xxx()。但是grails文档的mockControl.verify()对我来说不起作用。不知道如何正确使用它 这与mockito的验证方法非常相似 有人知道吗?如果您想在Grails单元测试中使用类似Mockito的行为,只需使用Mockito即可。它比Grails的mocking方法方便得多。您正在使用spock进行单元测试,您应该能够轻松地使用spock的
mockXxService.xxx()
。但是grails文档的mockControl.verify()
对我来说不起作用。不知道如何正确使用它
这与mockito的验证方法非常相似
有人知道吗?如果您想在Grails单元测试中使用类似Mockito的行为,只需使用Mockito即可。它比Grails的mocking方法方便得多。您正在使用
spock
进行单元测试,您应该能够轻松地使用spock的MockingApi
检查调用:
given:
def mockXxService = Mock(XxService)
service.xxService = mockXxService
when:
service.yyy()
then:
1 * mockXxService.xxx(_) //assert xxx() is called once
你可以从中获得更多关于嘲弄的见解
您甚至可以在模拟相关服务的同时将其存根和模拟为:
def mockXxService = Mock(XxService) {
1 * xxx(_)
}
不为我工作。它说:调用太少,无法进行:1*xxx.yyy()(0次调用)不匹配的调用(按相似性排序):这是一个好迹象。那你就走对了。再次参考文档。如果可能,请提供服务类的确切实现以及服务类中
XxSevice
的用法。这可能会有帮助。
def mockXxService = Mock(XxService) {
1 * xxx(_)
}