小编ste*_*eee的帖子

使用 Moq 和 xUnit 模拟和测试 LogError 消息

我有一个类级别的 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)

c# mocking ilogger

6
推荐指数
2
解决办法
5123
查看次数

标签 统计

c# ×1

ilogger ×1

mocking ×1