Использование Microsoft Test Framework и Moq Я пытаюсь проверить, был ли вызван метод log4net.
[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());
}
Я получаю исключение в Verify call, говоря, что
Ожидаемый вызов на макет хотя бы один раз, но он никогда не был Выполнено: moqLog = > moqLog.Info( "do stuff got called" ) Нет настроек сконфигурировано. Выполнено никаких вызовов.
Что я делаю неправильно?
update проблема связана с getter для свойства SampleClas.Log. Я всегда возвращал LogManager.GetLogger(...);
, даже когда свойство уже было настроено на ILogProxy. Я был под впечатлением, что свойство get accessor не будет вызвано, потому что я настроил прокси-сервер таким образом sampleObject.Log = logMockObject.Object;