Domanda

Sono un appassionato utente di RhinoMocks che sviluppa da una prospettiva TDD e AAA con NUnit e ReSharper. Sto cambiando lavoro e il team a cui mi sto trasferendo usa TypeMock, quindi voglio andare a terra correndo ... e ho riscontrato un problema. Come posso ottenere gli argomenti per un metodo chiamato su un oggetto simulato. Quando utilizzo RhinoMocks, utilizzo:

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

Che restituisce una IList di tipo array di oggetti. Grande! Vado a prendere quello che voglio e lo elaboro come desidero. Ora usando la sintassi AAA di TypeMock non riesco a trovare un modo per farlo ... Qualcuno potrebbe far luce su questo per favore? Dovrei farlo diversamente?

Grazie per aver letto e non vedo l'ora di avere le tue risposte!

Adam

È stato utile?

Soluzione

puoi usare DoInstead ():

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

Ottieni un oggetto Context che contiene i valori param.

puoi anche implementare un metodo con lo stesso nome sulla tua classe e scambiare chiamate dall'oggetto contraffatto a quel metodo:

 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.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top