Pourquoi utiliser It.is & lt; & gt; ou It.IsAny & lt; & gt; si je pouvais juste définir une variable?
Salut, je ai été en utilisant moq pour un certain temps quand je vois ce code.
J'ai pour l'installation d'un retour dans l'un de mes repo.
mockIRole.Setup(r => r.GetSomething(It.IsAny<Guid>(), It.IsAny<Guid>(),
It.IsAny<Guid>())).Returns(ReturnSomething);
J'ai trois paramètres et j'ai juste vu ces dans l'un des articles ou blog sur le net.
Qu'est-ce que l'utilisation de l'informatique.Est<>.IsAny<> pour un objet? si je pouvais le Guid.NewGuid() ou d'autres types alors pourquoi l'utiliser.Est?
Je suis désolé, je ne sais pas si ma question est de droit ou alors j'ai loupé quelques connaissances dans les tests.
Mais il semble qu'il n'y a rien de mal de toute façon.
source d'informationauteur user1960948
Vous devez vous connecter pour publier un commentaire.
À l'aide de
It.IsAny<>
It.Is<>
ou toutes les variables servent à des fins différentes. Ils fournissent de plus en plus des moyens spécifiques pour correspondre à un paramètre lors de la création ou de la vérification d'une méthode..IsAny
La méthode d'installation avec
It.IsAny<>
correspondra tout paramètre à la méthode. Donc, dans votre exemple, la suite des invocations seraient toutes renvoient la même chose (ReturnSomething
):Il n'a pas d'importance, la valeur réelle de la
Guid
qui a été passé..Est
La
It.Is<>
construction est utile pour l'installation ou la vérification d'une méthode, vous permettant de spécifier une fonction qui fait correspondre à l'argument. Par exemple:Cela permet de limiter la valeur de plus de juste valeur, mais vous permet d'être indulgent dans ce que vous acceptez.
La définition d'une Variable
Lorsque vous setup (ou vérifier) un paramètre d'une méthode avec une variable, vous voulez dire que vous voulez exactement cette valeur. Une méthode appelée avec une autre valeur ne sera jamais correspondre à votre configuration/vérifier.
Maintenant, il y a exactement un cas où
GetSomething
sera de retourReturnSomething
: lorsque tous lesGuid
s correspondent aux valeurs que vous mettez en place avec.Si vous regardez la Démarrage rapide de la documentation pour Moq
Correspondance Des Arguments