Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Grails单元测试验证模拟方法调用_Unit Testing_Grails_Mockito_Grails 2.0 - Fatal编程技术网

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(_)
}