2012-03-30 4 views
2

mockDomain fournit des méthodes dynamiques telles que save(), validate(), ... pour une classe de domaine.Est-il nécessaire de supprimer la métaClasse après avoir utilisé mockDomain dans les tests unitaires Grails?

Est-il nécessaire d'enlever les méta-classes pour chaque maquette de classe I en utilisant 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 
    } 

} 

Répondre

3

Vous n'avez pas besoin de faire cela. La méthode mockDomain appelle registerMetaClass, qui stocke la métaClasse actuelle et en substitue une nouvelle, de sorte que, sur tearDown, le test peut restaurer l'ancienne métaClass pour vous. Lorsque vous avez besoin d'ajouter vous-même des méthodes à une métaClasse, vous pouvez appeler registerMetaClass (avant d'ajouter vos modifications, bien sûr) et une fois que c'est fait, le test fera le nettoyage.

0

Nope. Par curiosité, qu'est-ce qui vous amènerait à croire que vous auriez besoin de faire cela?

+0

Une discussion avec un collègue de travail. J'avais raison et ce n'est pas nécessaire –

+0

J'avais raison aussi, mais je suppose que la réponse des autres était meilleure pour vous? – Gregg

+0

@Gregg: oui, vous avez raison, et vous étiez en premier. mais les réponses avec une explication font généralement mieux. –

Questions connexes