2010-10-04 3 views
0

У меня есть настраиваемый регистратор событий, и я хочу его протестировать.Как построить модульный тест

[Test] 
     public void AddLogWithExceptionAndEventLogEntryTypeTest() 
     { 

     const string loggerName = "mockLoggerName"; 
     var logger = new MyLogger(loggerName); 

     System.Diagnostics.EventLog log = new System.Diagnostics.EventLog("System"); 
     string logValue = Guid.NewGuid().ToString(); 
     logger.AddEntry(new Exception(logValue),EventLogEntryType.Error); 


     foreach (
      EventLogEntry entry in log.Entries) 
     { 
      if (entry.Message.ToUpper().Contains(logValue)) 
      { 
       //what can is do ? 
      } 
     } 
    } 

Что утверждают, что нужно использовать для предоставления информации, эта запись была добавлена?

+0

Какую модульную тестовую структуру вы используете? –

+0

nunit and rhinomock 3.6.0.0 – user278618

+0

Может быть полезно http://bytes.com/topic/c-sharp/answers/260170-nunit-testing-eventlog-entry –

ответ

3

Ваше намерение просмотреть журнал для текста, который вы только что добавили? Тогда как насчет:

bool foundOne = false; 
foreach (EventLogEntry entry in log.Entries) 
    { 
     if (entry.Message.ToUpper().Contains(logValue)) 
     { 
      foundOne = true; 
     } 
    } 

Assert(foundOne); 

Лично я бы вместо этого, вероятно, глумиться регистратор, и вместо того, чтобы утверждать, что методы издевались регистраторе назывались, как и ожидалось.

+1

+1: вам не нужно тестировать. NET, который записывает сообщения журнала, только то, что ваш класс вызывает эти методы с ожидаемыми параметрами. –

Смежные вопросы