mockDomain为域类提供动态方法,例如save()
,validate()
,...。
是否需要删除我使用mockDomain
模拟的每个类的元类?
class UserTests extends GrailsUnitTestCase {
protected void setUp()
{
super.setUp()
mockDomain User
mockDomain Address
}
protected void tearDown()
{
super.tearDown()
def remove = GroovySystem.metaClassRegistry.&removeMetaClass
remove User
remove Address
}
}
最佳答案
您不需要这样做。 mockDomain方法调用registerMetaClass
,它隐藏了当前的metaClass并替换了一个新的metaClass,以便在tearDown上测试可以为您恢复旧的metaClass。当您确实需要自己向metaClass添加方法时,可以调用registerMetaClass(当然,在添加更改之前),一旦完成,测试将进行清理。
关于unit-testing - 在Grails单元测试中使用mockDomain之后是否有必要删除metaClass?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9941548/