Chcę zweryfikować niektóre logi zalogowane. Używam rdzeń asp.net wbudowany ILogger i wstrzyknąć go z rdzeniem asp.net wbudowanym DI:Jak przetestować wbudowany rdzeń asp.net Ilogger
private readonly ILogger<InvoiceApi> _logger;
public InvoiceApi(ILogger<InvoiceApi> logger)
{
_logger = logger;
}
potem używać go jak: _logger.LogError("error));
Próbowałem go wyśmiewać (z MOQ) jak zwykle:
MockLogger = new Mock<ILogger<InvoiceApi>>();
i wstrzykiwać w usłudze do testów:
new InvoiceApi(MockLogger.Object);
następnie trie d zweryfikować:
MockLogger.Verify(m => m.LogError(It.Is<string>(s => s.Contains("CreateInvoiceFailed"))));
ale rzucać:
Nieprawidłowy zweryfikować na nie-wirtualnej (VB) w przeciążać użytkownika: m => m.LogError
Tak, jak można Weryfikuję logowane te logi?
Proszę o wyjaśnienie konkretnego problemu lub dodać dodatkowe szczegóły, aby zaznaczyć dokładnie to, czego potrzebujesz. Jak jest napisane, trudno powiedzieć dokładnie, o co prosisz. Zobacz stronę [How to Ask] (http://stackoverflow.com/help/how-to-ask), aby uzyskać pomoc w wyjaśnieniu tego pytania. – Nkosi
Dodałem wiersz na końcu. Czy teraz pytanie jest jasne? – arielorvits
Nie wyświetlasz w jakim kontekście używasz rejestratora. Pokaż testowany system/metodę. pokaż, w jaki sposób rejestrator jest wstrzykiwany i wykorzystywany. – Nkosi