是否可以在Grails中对addTo *函数进行单元测试?
感谢您的帮助。
答案 0 :(得分:6)
在Grails中,你需要具有特殊性 意识到单位之间的区别 和集成测试,因为在单位 测试Grails 不注入任何 动态方法存在于 集成测试和运行时。
您必须在单元测试中使用mockDomain(DomainClassName)
或编写集成测试:
当DomainClassGrailsPlugin
获得设置(doWithDynamicMethods
)时,Grails使用一些动态方法装饰域对象。
答案 1 :(得分:2)
我在从Grails 2.1.2升级到Grails 2.3.x时遇到了这个问题。像以前一样,你只需要模拟你要添加的域类,现在你还需要模拟正在添加的域类。简单的注释。
@TestFor(YourService)
@Mock([MyClass, MyOtherClass])
class YourServiceTests {
.... //now myClass.addToMyOtherClasses(myOtherClassInstance) should work fine in your test or in the code being tested
}