2012-03-27 81 views
1

我正在写一个C#登录级上具有时间戳的接口调用ILogHandler日志方法单位测试前置像这样:犀牛制品 - AssertWasCalled当一个参数是DateTime.Now

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

我初始处理程序方法在处理程序方法中添加了时间戳记,这使得测试处理程序日志是否被调用变得很容易,但是现在我添加了时间戳,我不确定应该如何执行测试。

有什么建议吗?

谢谢:)

回答

2

可以提供论据的期望:

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

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