moq
Spottande beteende
Sök…
Syntax
- mock.Setup (expression). Återgå (värde) // När metoden i uttrycket kallas kommer att returnera värde
parametrar
| Parameter | detaljer |
|---|---|
| uttryck | Lambda-uttryck som anger metodinokallering. |
Spott för metod utan argument
interface Mockable {
bool DoSomething();
}
var mock = new Mock<Mockable>();
mock.Setup(x => x.DoSomething()).Returns(true);
var result = mock.Object.DoSomething(); //true
Spottande ogiltiga metoder för att bekräfta vad de returnerar
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();
I det här fallet använder vi Verifierbar för att säkerställa att den körs.
Vi kan också använda ett återuppringning här:
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); });
detta skulle logga utdata från metoden till standardutdata på konsolen (många testramar låter dig fånga utdata till deras löpare)
Hånar skyddade medlemmar
För att håna en skyddad medlem måste du först inkludera följande längst upp i din testfixtur:
using Moq.Protected;
Du ringer sedan Protected() på din håna, varefter du kan använda den generiska Setup<> med returtypen för din metod.
var mock = new Mock<MyClass>();
mock.Protected()
.Setup<int>("MyProtectedGetIntMethod")
.Returns(1);
Om metoden återgår ogiltig använder du den icke-generiska Setup() .
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow