2009-06-26 5 views
1

Je suis un utilisateur averti de RhinoMocks développant à partir d'une perspective TDD et AAA avec NUnit et ReSharper. Je change d'emploi et l'équipe avec laquelle je travaille utilise TypeMock, donc je veux partir au sol ... et j'ai eu un problème. Comment puis-je obtenir les arguments pour une méthode appelée sur un objet fantaisie. Lors de l'utilisation de RhinoMocks, j'utilise:Obtention d'arguments d'une méthode appelée par Typemock

mockObject.GetArgumentsForCallsMadeOn(x => x.MethodIWantToGetParametersFrom(null)) 

Qui renvoie un IList de type tableau d'objets. Génial! Je vais chercher ce que je veux et le traite comme je le souhaite. Maintenant, en utilisant la syntaxe AAA de TypeMock, je n'arrive pas à trouver un moyen de le faire ... Quelqu'un pourrait-il nous éclairer? Devrais-je le faire différemment?

Merci d'avoir lu et j'attends vos réponses avec impatience!

Adam

Répondre

1

vous pouvez utiliser DoInstead():

Isolate.WhenCalled(()=>x.MethodIWantToGetParametersFrom).DoInstead(context => Console.WriteLine(context.Parameters[0].ToString()) 

Vous obtenez un objet contextuel qui contient les valeurs de param.

vous pouvez également mettre en œuvre une méthode avec le même nom sur votre propre classe, et d'échanger des appels de l'objet truqué à cette méthode:

class MyOwnClass 
    { 
    void MethodIWantTOGetParametersFrom(string s){ 
Console.WriteLine(s); 
} //this is NOT the real method 
    } 

    //in test: 
    MyOwnClass own = new MyOwnClass(); 
    Isolate.Swap.CallsOn(realClassInstance).WithCallsTo(own); //only methods that are implemented in the OwnCalss will be redirected. others will be called on the original instance. 
+0

excellent. Merci beaucoup. – Adam

Questions connexes