我正在尝试对服务进行单元测试,并且我想使用模拟来覆盖域对象上的方法,该方法从数据库中检索文件。
def mockElem = mockFor(DataElement, false)
mockElem.demand.getFile(){return tempFile}
def dataElem = mockElem.createMock()
dataElem.orderId = "123"
dataElem.id = tempFileName
dataElem.dataType = "cnv"
dataElem.dataStatus = DataStatus.TRANSFERED
mockDomain(DataElement, [dataElem])
当我在数据元素上调用动态查找器时,我希望这个模拟域与 getFile 的 mockFor 需求功能一起返回。到达 MockDomain 行时抛出断言错误
junit.framework.AssertionFailedError:此时不应调用“getClass”。仍然需要 1 次调用“getFile”。在 groovy.mock.interceptor.StrictExpectation.match(StrictExpectation.groovy:56) 在 grails.test.GrailsMock.createMock_closure1(GrailsMock.groovy:136) 在 grails.test.MockUtils.updateMetaClassForClass_closure95(MockUtils.groovy:1297) 在 groovy。 lang.Closure.call(Closure.java:412) 在 grails.test.MockUtils.updateMetaClassForClass(MockUtils.groovy:1294) 在 grails.test.MockUtils.mockDomain 的 groovy.lang.Closure.call(Closure.java:425) (MockUtils.groovy:470) 在 grails.plugin.spock.UnitSpec.mockDomain(UnitSpec.groovy:141) 在 com.genospace.inbound.pg.HemeCNVPipelineTestSpec.test 处理血红素文件(HemeCNVPipelineTestSpec.groovy:66)