I want to verify some logs logged. I am using the asp.net core built-in ILogger, and inject it with the asp.net core built-in DI:
private readonly ILogger<InvoiceApi> _logger;
public InvoiceApi(ILogger<InvoiceApi> logger)
{
_logger = logger;
}
then I use it like: _logger.LogError("error));
I tried to mock it (with moq) as usual by:
MockLogger = new Mock<ILogger<InvoiceApi>>();
and inject this in the service for test by:
new InvoiceApi(MockLogger.Object);
then tried verify:
MockLogger.Verify(m => m.LogError(It.Is<string>(s => s.Contains("CreateInvoiceFailed"))));
but it throw:
Invalid verify on a non-virtual (overridable in VB) member: m => m.LogError
So, how can I verify this logs logged?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…