在单元测试中,我模拟了一个服务(这是被测类的引用)。

喜欢:

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/

10-10 16:20