如何使用spock在grails中模拟同一类的多个方法?

时间:2017-06-13 08:06:49

标签: unit-testing grails mocking spock

我有一个单元测试,我想在其中模拟两种服务方法。我知道如何做一次:

def caseHistoryMock = mockFor(CaseHistoryService)
        caseHistoryMock.demand.getLatestCaseHistory(1..1) {String caseNumber, String productFamily -> return caseHistoryObj }
        controller.caseHistoryService = caseHistoryMock.createMock()

如何模拟caseHistoryService的另一种方法。我控制器中对方法的调用如下:

def caseHistoryObj = caseHistoryService.getLatestCaseHistory(alert.caseNumber, alert.productFamily)

caseHistoryService.saveCaseHistory(caseHistoryMap)

*我使用的是grails 2.5.1。 提前致谢, Apoorv

1 个答案:

答案 0 :(得分:0)

您可以使用boundary=----WebKitFormBoundaryaSWkHLJeD9EymCJb'函数进行模拟:

Mock

def caseHistoryMock = Mock(CaseHistoryService) 1 * caseHistoryMock.getLatestCaseHistory(_, _) >> caseHistoryObj 1 * caseHistoryMock.saveCaseHistory(_) controller.caseHistoryService = caseHistoryMock 是可选的,它描述了应该调用函数的频率。