À l'aide de Moq, Comment configurer un appel de méthode avec un paramètre d'entrée comme un objet avec les valeurs de propriété?
À l'aide de Moq, Comment configurer un appel de méthode avec un paramètre d'entrée comme un objet avec les valeurs de propriété?
var storageManager = new Mock<IStorageManager>();
storageManager.Setup(e => e.Add(It.IsAny<UserMetaData>()));
Méthode Add() s'attend à un UserMetaData objet qui a le Prénom de la propriété.
J'aimerais assurez-vous qu'un objet de type UserMetaData avec le Prénom de "FirstName1" a été votée.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Verify
.Exemples:
Vérifier que
Add
n'a jamais été appelé avec unUserMetaData
avecFirstName
!="FirstName1"
:Vérifier que
Add
a été appelé au moins une fois avec unUserMetaData
avecFirstName
=="FirstName1"
:Vérifier que
Add
a été appelé exactement une fois avecFirstName
=="Firstname1"
etLastName
=="LastName2"
:Verify
explicitement, mais l'utilisationSetup
de préciser vos attentes.Setup(....)
etVerifyAll()
ou uniquement à l'aide deVerify
dépend de vos préférences personnelles et aussi votre cas d'utilisation (utilisez-vous la valeur de retour de la fonction que vous avez configuré parSetup
?, voulez-vous indiquer la fréquence d'une fonction est appelée avecTimes
?, etc.)Vous pouvez l'utiliser.C'est la méthode:
Dominic Kexel de la méthode est bonne et le travail. Vous pouvez également utiliser le callback bien que ce qui est utile si vous avez besoin de faire une vérification de la sortie c'est plus compliqué.
L'avantage de ceci est que, si nécessaire, vous pouvez faire beaucoup plus de contrôles sur le paramètre plutôt que de simplement vérifier qu'elle est "FirstName1".
L'inconvénient est que si l'Add est appelée plusieurs fois, puis seulement le paramètre passé dans le dernier appel sera vérifié (bien que vous pouvez aussi Vérifier qu'il a été appelé une fois).
Dominique réponse est meilleure que la mienne pour votre situation précise, mais je voulais souligner la fonction de Rappel pour d'autres situations similaires.