我有一个类级别的 ILogger,它是在构造函数中使用 ILoggerFactory 设置的。然后在该类的方法中使用记录器,效果非常好。
我正在努力研究如何模拟 ILogger 和 ILoggerFactory,以便我可以对 LogError 消息进行单元测试。谁能给我举个例子吗?
我使用 xUnit 和 Microsoft.Extentions.Logging 进行登录
//This is my unit test project
[Fact]
public void TestLogErrorMessage()
{
MyClass myClass = new MyClass (MockLoggerFactory().Object);
var result = myClass.Mymethod("a")
//How do I test the LogError message???
}
//Not sure if this is correct
private Mock<ILoggerFactory> MockLoggerFactory()
{
Mock<ILoggerFactory> mockLoggerFactory = new
Mock<ILoggerFactory>(MockBehavior.Default);
mockLoggerFactory.Setup(x => x.CreateLogger(It.IsAny<string>()))
.Returns(MockLogger().Object);
return mockLoggerFactory;
}
private Mock<ILogger> MockLogger()
{
var logger = new Mock<ILogger>();
return logger;
}
Run Code Online (Sandbox Code Playgroud)
//This is …Run Code Online (Sandbox Code Playgroud)