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を呼び出します。これは、現在のメタクラスを隠して新しいメタクラスに置き換えます。これにより、tearDown でテストが古いメタクラスを復元​​できるようになります。自分で metaClass にメソッドを追加する必要がある場合は、(もちろん、変更を追加する前に) registerMetaClass を呼び出すことができます。それが完了すると、テストによってクリーンアップが行われます。

于 2012-03-30T12:10:56.153 に答える
0

いいえ。好奇心から、そうする必要があると信じるに至った理由は何ですか?

于 2012-03-30T11:59:01.823 に答える