Sto scrivendo alcuni test unitari per la mia classe View Model. Il costruttore di questa classe viene iniettato con un ILoggerService. Questa interfaccia definisce 1 metodo GetLog che restituisce un ILogger. Qualcosa di simile sotto dove questo rappresenta una classe che implementa ILoggable: -Come simulare ILogger/ILoggerService usando Moq
protected ViewModelBase(ILoggerService loggerService)
{
Logger = loggerService.GetLog(this);
}
sto cercando di unità di prova il mio metodo CreateNewOrder che assomiglia di seguito:
private void CreateNewOrder(INewOrderViewModel newOrderViewModel)
{
Logger.Log("Sending Create New Order Message", LogCategory.Info);
var createNewOrderMessage = new OrderMessage(newOrderViewModel);
_eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage);
}
Come potrei fare su Mocking di ILoggerService in modo che venga restituito un Logger valido? Al momento il mio test unitario lancia una NullReferenceExeception.
Sto usando Moq per fare il mio beffardo.
sto immaginando ho bisogno di fare qualcosa sulla falsariga di
var loggerService = new Mock<ILoggerService>();
loggerService.Setup(svc => svc.GetLog(??))
ma non riesco a vedere come, senza fare la mia classe di test implementare ILoggable.
Grazie in anticipo.
Brillante. Ha funzionato a meraviglia Grazie mille – user630190
Per riferimento, io uso qualcosa come: 'var loggerMoq = Mock.Of>();' –
Nordes