Korzystanie z Microsoft Test Framework i Moq Próbuję sprawdzić, czy została wywołana metoda log4net.Konfigurowanie moq i sprawdzanie, czy metoda została wywołana
[TestMethod()]
public void Log_Info_When_Stuff_Is_Done()
{
SampleClass sampleObject = new SampleClass();
Mock<log4net.ILog> logMockObject = new Mock<log4net.ILog>();
sampleObject.Log = logMockObject.Object;
sampleObject.DoStuffAndLogInfo();
logMockObject.Verify(moqLog => moqLog.Info("do stuff got called"), Times.AtLeastOnce());
}
uzyskać wyjątek na Sprawdzić połączenia mówiąc, że
Oczekiwany wezwanie na mock co najmniej raz, ale nigdy nie było wykonywane: moqLog => moqLog.Info („robić rzeczy został nazwany”) Nie skonfigurowano żadnych konfiguracji. Nie wykonano wywołań.
Co robię źle?
aktualizacja problem dotyczył pobierającego dla właściwości SampleClas.Log. Zawsze zwracałem LogManager.GetLogger(...);
, nawet jeśli właściwość była już ustawiona na ILogProxy. Miałem wrażenie, że narzędzie do uzyskania dostępu nie zostanie wywołane, ponieważ skonfigurowałem serwer proxy tak, jak sampleObject.Log = logMockObject.Object;
Czy „do rzeczy, ale o nazwie” dokładny ciąg były przekazywane do .info? –
Co robi funkcja 'sampleObject.DoStuffAndLogInfo()? –
Nie. Czy parametr ma znaczenie? Myślałem, że parametry nie mają znaczenia, o ile coś przekazujesz. –