我正在尝试对服务进行单元测试,并且我想使用模拟覆盖域对象上的方法,该方法从数据库中检索文件。
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行时,引发断言错误
最佳答案
不确定是什么问题。
您收到此错误是因为您两次模拟对象:
带mockFor
/ createMock
的
mockDomain
的mockDomain
需要了解有关作为参数传递的对象的一些信息(此处验证类是否正确),但是mockFor
不允许调用getClass()
:您未为此类调用添加demand
。您是否真的需要使用
demand
模拟?我认为简单的情况应该工作:
def dataElem = new DataElement()
dataElem.orderId = "123"
dataElem.id = tempFileName
dataElem.dataType = "cnv"
dataElem.dataStatus = DataStatus.TRANSFERED
dataElem.file = tempFile
mockDomain(DataElement, [dataElem])