2

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
    }

}
4

2 回答 2

3

你不需要这样做。mockDomain 方法调用registerMetaClass,它隐藏了当前的 metaClass 并替换了一个新的 metaClass,以便在 tearDown 测试可以为您恢复旧的 metaClass。当您确实需要自己向元类添加方法时,您可以调用 registerMetaClass (当然,在添加更改之前),一旦完成,测试将进行清理。

于 2012-03-30T12:10:56.153 回答
0

没有。出于好奇,是什么让你相信你需要这样做?

于 2012-03-30T11:59:01.823 回答