J'ai une méthode sur une interface:
string DoSomething(string whatever);
Je veux me moquer de cela avec MOQ, afin qu'il renvoie tout ce qui a été passé - quelque chose comme:
_mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) )
.Returns( [the parameter that was passed] ) ;
Des idées?
IReturns
dans Moq, il définitReturns
pour 4 arguments au maximum . Un moyen facile de contourner cela? / Je veux dire, sauf la modification de la source Moq /Moq
v4.0.0.0
. résolu :).Returns<string>
fait référence au (x) paramètre (s) d'entrée et non aux valeurs que vous retournez.Encore plus utile, si vous avez plusieurs paramètres, vous pouvez accéder à chacun d'entre eux avec:
Vous devez toujours référencer tous les arguments, pour correspondre à la signature de la méthode, même si vous n'utilisez qu'un seul d'entre eux.
la source
ReturnsAsync
aussi!La
Returns<T>
méthode générique peut très bien gérer cette situation.Ou si la méthode nécessite plusieurs entrées, spécifiez-les comme suit:
la source