我有一个测试,看起来像这样:
[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
)。