0

我们正在尝试将现有的 Grails 1.x 应用程序从 1.x 升级到 2.x(当前使用 2.2.1)。一个单元测试失败了,我被卡住了。这是测试在做什么......

服务 -

def saveSomeData(myDomain) {
    return myDomain.save(flush:true)
}

服务测试 -

void testShouldSaveAndReturnTrue() {
    def myDomainEmc = new ExpandoMetaClass(MyDomain)
    myDomainEmc.save = {flush -> true}
    myDomainEmc.initialize()
    myDomainEmc.metaClass = myDomainEmc
    assertTrue myTestService.saveSomeData(myDomainEmc)
}
4

1 回答 1

3

从错误消息来看,它似乎save()在没有任何参数的情况下被调用。尝试添加一个无参数save()方法:

myDomainEmc.save = {-> true}

另外,我建议使用 Grails 2@Mock注释来模拟域对象,以省去使用ExpandoMetaClass.

于 2013-04-22T15:43:19.580 回答