2012-03-30 2 views
2

mockDomainは、save(),validate()などの動的メソッドをドメインクラスに提供します。GrailsユニットテストでmockDomainを使用した後にmetaClassを削除する必要がありますか?

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 
    } 

} 

答えて

3

これを行う必要はありません。 mockDomainメソッドはregisterMetaClassを呼び出し、現在のmetaClassを隠して新しいものを置き換えるので、tearDownで古いメタクラスを復元​​できます。メソッドをメタクラスに自分で追加する必要があるときは、registerMetaClassを呼び出すことができます(変更を追加する前に)。いったん終了すると、テストがクリーンアップされます。

0

いいえ。好奇心のために、あなたがそれをする必要があると信じるように導くのは何ですか?

+0

仲間との議論。私は正しかったし、それは必要ではない –

+0

私は正しかったが、私は他の人の回答があなたにとってより良いと思いますか? – Gregg

+0

@Gregg:はい、あなたは正しいです、そして、あなたは最初でした。説明があれば答えが良くなります。 –

関連する問題