【问题标题】:Rhino Mocks - AssertWasCalled when one parameter is DateTime.NowRhino Mocks - 当一个参数是 DateTime.Now 时 AssertWasCalled
【发布时间】:2012-03-27 19:50:35
【问题描述】:

我正在为 C# Log-class 编写单元测试,该类调用接口 ILogHandler 上的 log 方法,并在前面加上时间戳,如下所示:

log(string msg, LogLevel lvl)
{
   _handler.log(DateTime.Now, msg, lvl);
}

我最初的处理程序方法在处理程序方法中添加了时间戳,这样可以很容易地测试是否调用了处理程序日志,但是现在我已经添加了时间戳,我不确定我应该如何执行测试。

有什么建议吗?

谢谢:)

【问题讨论】:

    标签: unit-testing rhino-mocks


    【解决方案1】:

    您可以提供参数期望:

    handler.AssertWasCalled(h => h.Log(Arg<DateTime>.Is.Anything, 
                                       Arg<string>.Is.Equal(msg),
                                       Arg<LogLevel>.Is.Equal(lvl)));
    

    这将检查传递给依赖项的第一个参数是任何日期时间。如果要设置一些限制,请将 Arg.Matches 部分添加到参数中。

    【讨论】:

      猜你喜欢
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      相关资源
      最近更新 更多