NSubstitute mock NLog记录器失败



我有一个测试,看起来像这样:

[Test]
public void LoggerTest()
{
    var log = Substitute.For<Logger>();
    log.DidNotReceiveWithAnyArgs().Info("");
    log.ReceivedWithAnyArgs().Info("");
}

测试成功了,显然它不应该成功。据我所知,这是根据nsubstitute网站的语法。谁能告诉我问题出在哪里?

我在NuGet包管理器的1.7.2.0版本中使用了nsubstitute

NLog。Logger是一个具有非虚拟成员的具体类,因此NSubstitute将无法使用它(参见创建替代品的说明)。

如果你需要测试日志记录,一个选择是将日志功能包装在你自己的、特定于应用程序的界面中。这使得为测试目的替换一个新的日志记录器更容易(可以使用NSubstitute或其他mock库,或者为您的测试目的手工编写您自己的TestLogger)。

最新更新