Rhino Mocks - 当一个参数是DateTime.Now时,AssertWasCalled

时间:2012-03-27 19:50:35

标签: unit-testing rhino-mocks

我正在编写一个C#Log-Class的单​​元测试,它在接口ILogHandler上调用一个日志方法,其前缀如下:

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

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

有什么建议吗?

谢谢:)

1 个答案:

答案 0 :(得分:2)

您可以提供参数期望:

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

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