Используя 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, в котором говорится, что
Ожидаемый вызов на макет хотя бы один раз, но никогда не выполнялся: moqLog => moqLog.Info ("doматериал называется ") Нет настроек настроено.Вызовы не выполняются.
Что я делаю не так?
update проблема была с геттером для свойства SampleClas.Log.Я всегда возвращал LogManager.GetLogger(...);
, даже когда свойство уже было установлено на ILogProxy.У меня сложилось впечатление, что метод доступа к свойству не будет вызываться, потому что я настроил прокси-сервер так: sampleObject.Log = logMockObject.Object;