moq
Comportement moqueur
Recherche…
Syntaxe
- mock.Setup (expression) .Returns (value) // Chaque fois que la méthode appelée dans l'expression retournera une valeur
Paramètres
Paramètre | Détails |
---|---|
expression | Expression Lambda qui spécifie l'appel de méthode. |
Méthode sans argument se moquant
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
Se moquer des méthodes vides pour confirmer ce qu'elles renvoient
var logRepository = new Mock<ILogRepository>();
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Verifiable();
Dans ce cas, nous utilisons le verifiable pour s’assurer qu’il fonctionne.
Nous pourrions également utiliser un rappel ici:
logRepository.Setup(x => x.Write(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback<Exception, string, string, string, string, string>((ex, caller, user, machine, source, message) => { Console.WriteLine(message); });
ceci consignerait la sortie de la méthode sur la sortie standard de la console (de nombreux frameworks de test vous permettent de capturer cette sortie dans leur runner)
Se moquer des membres protégés
Pour simuler un membre protégé, vous devez d'abord inclure les éléments suivants en haut de votre dispositif de test:
using Moq.Protected;
Vous appelez ensuite Protected()
sur votre maquette, après quoi vous pouvez utiliser le programme d' Setup<>
générique Setup<>
avec le type de retour de votre méthode.
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
Si la méthode retourne vide, utilisez le Setup()
non générique Setup()
.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow