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