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

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

我如何模拟caseHistoryService的另一种方法。在我的 Controller 中对方法的调用如下:
def caseHistoryObj = caseHistoryService.getLatestCaseHistory(alert.caseNumber, alert.productFamily)


caseHistoryService.saveCaseHistory(caseHistoryMap)

*我使用的是grails 2.5.1。
提前致谢,
阿波罗夫

最佳答案

您可以使用Mock函数模拟它:

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

09-26 06:07