Как сделать TDD с log4net? - PullRequest
       13

Как сделать TDD с log4net?

3 голосов
/ 26 января 2012

Я пытаюсь сделать TDD, мне не ясно, как это сделать для логики логирования, которую я пишу.

Пример Фокса, что будет тестом для следующего:

  if(importantCriteriaNotMet)
  {
     log.Info("My message here");
  }

Как мне проверить этот код регистрации? Должен ли я проверить это?

Ответы [ 2 ]

10 голосов
/ 26 января 2012

Если журнал имеет тип ILog:

  • Макет вашего интерфейса ILog
  • Внедрить ваш смоделированный объект
  • утверждает, что log.Info вызывается, когда важныйCriteriaNotMet имеет значение
6 голосов
/ 26 января 2012

Log4Net: s Logger реализует интерфейс под названием ILog, если я правильно помню.Используйте фальшивый фреймворк, такой как Moq, и создайте макетированный экземпляр ILog.

Затем вы создадите свой класс, чтобы получить экземпляр ILog в конструкторе.Используя подобный дизайн, вы можете дать классу конкретную реализацию при запуске вашей системы и проверенном экземпляре во время выполнения тестов.

Вы можете проверить, правильно ли ведется запись в журнал с помощью кода, подобного следующему:

mockedLogger.Verify(l=>l.Log("The message that should be logged"),Times.Once)

Если вы хотите узнать, что издевательство над TDD - это ваш друг.

...