我正在尝试做TDD,我不清楚如何为我编写的记录逻辑做这件事。
福克斯的例子,对于以下内容的测试是什么:
if(importantCriteriaNotMet)
{
log.Info("My message here");
}
我如何测试该日志代码? 我应该测试一下吗?
答案 0 :(得分:10)
如果log是ILog类型:
答案 1 :(得分:6)
Log4Net:如果我没记错的话,Logger会实现一个名为ILog的接口。 使用像Moq这样的模拟框架并创建一个模拟的ILog实例。
然后,您设计您的类以在构造函数中获取ILog实例。 使用类似的设计,在运行测试时运行系统和模拟实例时,可以为类提供具体实现。
您可以使用以下代码验证我是否正确完成了日志记录:
mockedLogger.Verify(l=>l.Log("The message that should be logged"),Times.Once)
如果你想学习TDD嘲笑是你的朋友。