我在升级从Grails的1.3.7应用程序2.2Grails的1.3.7中的Grails 2.2升级,单元测试失败,现在缺少格姆方法
中旬至今,它一直是相对无痛和直线前进。
直到我们开始运行单元测试。
在1.3.7下,所有的测试都通过了。
2.2以下,大约一半现在失败。测试没有改变,他们仍然是老式的mockDomain ...
什么是最让我感兴趣的是,基本的gorm功能在某些域类中缺失。
之类的东西.LIST和不用彷徨
失败:testList_NoMaxSpecified_10Shown(com.litle.bldvwr.StreamControllerTests) | groovy.lang.MissingMethodException:没有方法的签名:> com.litle.bldvwr.Stream.list()适用于参数类型:()values:[] 可能的解决方案:list(),list(),list() ,列表(java.lang.Object中),列表(java.util.Map),>列表(java.lang.Object中)
和
失败:> testAddFailureOutputToHappyPathWithIntegrationFailure(com.litle。 bldvwr.LogParserServiceTests) | groovy.lang.MissingMethodException:没有方法的签名:> com.litle.bldvwr.Result.get()适用于参数类型:()values:[] 可能的解决方案:get(java.io.Serializable),get java.lang.Object)> get(java.io.Serializable),getId(),grep(),grep(java.lang.Object)
这种类型的失败的一般模式是:
mockDomain(Phase, [new Phase(id:1, name: 'xxx')])
mockDomain(Result, [new Result(id:1, phase: Phase.get(1), failureOutput:"")])
logParserService.addFailureOutputTo(Result.get(1))
最后得到的是导致没有签名的错误。尽管我们打算开始使用新的单元测试功能,但我希望避免重写500多个当前的测试。
想法,想法?
-Clark
必须显式分配id是由于某些字段不再可以从构造函数映射默认绑定。 –