2009-06-18 11 views
0

J'essaie actuellement de revenir en arrière et d'écrire des tests unitaires pour du code qui enveloppe une classe existante. La fonction que je cherche a le code qui ressemble à ce qui suit ...Utilisation de groovy pour imbriquer la classe

private OldObject oldObject 
... 
public Boolean method(){ 
    Boolean returnValue = false 
    if(oldObject.method(100)){ 
    returnValue = true 
    } 
    if(oldObject.method(101)){ 
    returnValue = true 
    } 
} 

J'ai pensé à utiliser métaclasse, quelque chose comme OldObject.metaClass.method {return true} mais je ne suis pas sûr de savoir comment supprimer ceci avant les prochains tests.

Quelqu'un at-il des bonnes pratiques/de l'aide pour ce genre de situation?

Répondre

0

Pour se moquer de l'utilisation de la méthode:

OldObject.metaClass.method = {return true} 

Soyez conscient que cela se moquer de la méthode pour tous cas de ancienObjet, mais il est également possible de se moquer de la méthode juste pour une seule instance. Lorsque vous souhaitez supprimer la méthode moquée vient de mettre la métaclasse null:

OldObject.metaClass = null 

Je pense que vous devez utiliser au moins Groovy 1.6 pour que cela fonctionne.

Questions connexes