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
,它会隐藏当前的元类并替换一个新的元类,以便在拆解时测试可以为您恢复旧的元类。当您确实需要自己向元类添加方法时,您可以调用 registerMetaClass(当然,在添加更改之前),一旦完成,测试将进行清理。
关于unit-testing - 在Grails单元测试中使用mockDomain后是否需要删除metaClass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941548/