我正在编写一个C#Log-Class的单元测试,它在接口ILogHandler上调用一个日志方法,其前缀如下:
log(string msg, LogLevel lvl)
{
_handler.log(DateTime.Now, msg, lvl);
}
我的初始处理程序方法在handler-method中添加了时间戳,这样可以很容易地测试处理程序日志是否被调用,但是现在我已经添加了时间戳我不知道应该如何执行测试
有什么建议吗?
谢谢:)
答案 0 :(得分:2)
您可以提供参数期望:
handler.AssertWasCalled(h => h.Log(Arg<DateTime>.Is.Anything,
Arg<string>.Is.Equal(msg),
Arg<LogLevel>.Is.Equal(lvl)));
这将检查传递给依赖项的第一个参数是否是任何DateTime。如果要设置一些限制,请将Arg.Matches部分添加到参数中。