moq
Bespottend gedrag
Zoeken…
Syntaxis
- mock.Setup (expressie) .Returns (waarde) // Wanneer de methode in de expressie wordt aangeroepen, wordt de waarde geretourneerd
parameters
Parameter | Details |
---|---|
uitdrukking | Lambda-expressie die de methode-aanroep aangeeft. |
Geen argumenten methode mocking
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
Bespotten van nietige methoden om te bevestigen wat ze retourneren
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();
In dit geval gebruiken we Verifieerbaar om ervoor te zorgen dat het wordt uitgevoerd.
We kunnen hier ook een callback gebruiken:
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); });
dit logt de uitvoer van de methode naar standaarduitvoer op de console (met veel testkaders kunt u die uitvoer vastleggen in hun runner)
Bespotten beschermde leden
Om een beschermd lid te bespotten, moet u eerst het volgende bovenaan uw testopstelling opnemen:
using Moq.Protected;
Vervolgens roept u Protected()
op uw mock, waarna u de generieke Setup<>
kunt gebruiken met het retourtype van uw methode.
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
Als de methode ongeldig wordt, gebruikt u de niet-generieke Setup()
.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow