36 votes

RhinoMocks - Stub une méthode qui retourne un paramètre

J'utilise RhinoMocks, j'ai besoin de stub une méthode et de toujours lui renvoyer le troisième paramètre, indépendamment de ce qui est passé dans:

 _service.Stub(x => x.Method(parm1, parm2, parm3)).Return(parm3);
 

De toute évidence, ce n'est pas si facile. Je ne sais pas toujours quels seront les pars, mais je sais que je veux toujours retourner le 3ème.

66voto

Wim Coenen Points 41940

Vous pouvez fournir une implémentation pour une méthode avec le gestionnaire Do () :

 Func<TypeX,TypeY,TypeZ,TypeZ> returnThird = (x,y,z) => z;
mock.Expect(x => x.Method(null, null, null)).IgnoreArguments().Do(returnThird);
 

0voto

Michael Points 441

Vous pouvez utiliser la méthode expect avec un rappel pour renvoyer la valeur que vous recherchez. Ce qui suit retournera null.

 _service.Expect(o => o.Method(null, null, null))
        .Callback((object parm1, object parm2, object parm3) => { return parm3; });
 

Je ne suis pas sûr que vous puissiez utiliser Callback sur Stub.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X