我声明了一个类LogManager
和一个接口 ILogManager
,并且有一个方法LoggerError
,该方法使用ILogger
(DI) logerror并执行其他操作。
有一个类A
(DI ILogClass)并声明了一个方法funA()
,而funA()
将使用_LogManager.LoggerError("test message")
。
Verify
_LogManager.LoggerError("test message")
?如果我仅在类ILogger
中使用A
,则可以{:1}与:
Verify
但不支持loggerMock.Verify(l => l.Log(LogLevel.Error,It.IsAny<EventId>(),
It.Is<object>(o => o.ToString().Contains("test message")),null,It.IsAny<Func<object, Exception, string>>()), Times.Once);
模拟。
ILogManager
答案 0 :(得分:0)
您的LoggerManager<TCategoryName>
只是ILogger<TCategoryName>
的包装,因此您可以模拟ILogger<TCategoryName>
并验证是否已完成,并且应该可以正常工作。
尽管实际调用SUT时,您将不得不相应地注入LoggerManager<TCategoryName>