繁体   English   中英

如何使用log4net进行TDD?

[英]How to do TDD with log4net?

我正在尝试做TDD,我不清楚如何为我编写的记录逻辑做这件事。

Fox的例子,对于以下内容的测试是什么:

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

我该如何测试该日志代码? 我应该测试一下吗?

如果log是ILog类型:

  • 模拟你的ILog界面
  • 注入你的模拟对象
  • 断言当importantCriteriaNotMet为true时调用log.Info

Log4Net:如果我没记错的话,Logger实现了一个名为ILog的接口。 使用像Moq这样的模拟框架并创建一个模拟的ILog实例。

然后,您设计您的类以在构造函数中获取ILog实例。 使用类似的设计,在运行测试时运行系统和模拟实例时,可以为类提供具体实现。

您可以使用以下代码验证我是否正确完成了日志记录:

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

如果你想学习TDD嘲笑是你的朋友。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM