Estoy escribiendo algunas pruebas de unidad para mi clase de modelo de vista. El constructor de esta clase se inyecta con un ILoggerService. Esta interfaz define 1 método GetLog que devuelve un ILogger. Algo así como por debajo de donde este representa una clase que implementa ILoggable: -Cómo simular ILogger/ILoggerService usando Moq
protected ViewModelBase(ILoggerService loggerService)
{
Logger = loggerService.GetLog(this);
}
estoy tratando de probar mi método de unidad de CreateNewOrder que se parece a continuación:
private void CreateNewOrder(INewOrderViewModel newOrderViewModel)
{
Logger.Log("Sending Create New Order Message", LogCategory.Info);
var createNewOrderMessage = new OrderMessage(newOrderViewModel);
_eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage);
}
¿Cómo iría sobre Mocking del ILoggerService para que se devuelva un Logger válido Por el momento, mi prueba de unidad arroja una NullReferenceExeception.
Estoy usando Moq para hacer mi burla.
estoy imaginando que tiene que hacer algo en la línea de
var loggerService = new Mock<ILoggerService>();
loggerService.Setup(svc => svc.GetLog(??))
pero no puedo ver cómo sin hacer mi clase de elemento de ensayo ILoggable.
Gracias de antemano.
Brillante. Eso funcionó un placer. Muchas gracias – user630190
Como referencia, uso algo como: 'var loggerMoq = Mock.Of>();' –
Nordes