How to construct unit test
I have custom event logger, and I want to test it.
[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 ?
}
}
}
What assert to use to give info开发者_开发技巧rmation, that entry was added ?
Is your intent to look through the log for text you just added? Then how about:
bool foundOne = false;
foreach (EventLogEntry entry in log.Entries)
{
if (entry.Message.ToUpper().Contains(logValue))
{
foundOne = true;
}
}
Assert(foundOne);
Personally, I would instead probably mock the logger, and instead assert that the methods of the mocked logger were called as expected.
精彩评论