0
Ich habe die folgende Klasse mit einer Log-Funktion, die für den Test-Zweck nur wahr zurückgibt.Moq: Moq ist Setup, aber ich glaube nicht, es heißt
public SomeClass : ILogger
{
// Other functions
public bool Log()
{
return true;
}
}
Wie in meinem Unit-Test habe ich die folgenden:
Mock<ILogger> logger = new Mock<ILogger>();
logger.Setup(func => func.Log()).Returns(() => false).Verifiable();
SomeClass testMe = new SomeClass(logger.Object);
bool result = testMe.Log();
logger.Verify(); //This fails saying that the Log function was never called
Das Boolesche Ergebnis nicht auf false gesetzt ist, aber wahr. Das lässt mich glauben, dass mein Setup falsch ist. Ist das der Fall?
Das ist, weil Sie nicht 'Log()' Methode der injizierten Logger-Instanz aufgerufen haben. Rufen Sie 'logger.Log()' in Ihrer 'SomeClass'' Log' Methode auf – Developer
Bitte stellen Sie die Implementierung Ihrer Methode 'Log' bereit, die auf' SomeClass' deklariert ist. Höchstwahrscheinlich rufen Sie die Protokollfunktion Ihres Loggers nicht auf. – Rafal