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