I am writing some unit tests for the View Model class. The constructor of this class is introduced by ILoggerService. This interface defines 1 GetLog method that returns an ILogger. Something like below, where this one represents a class that implements ILoggable: -
protected ViewModelBase(ILoggerService loggerService) { Logger = loggerService.GetLog(this); }
I am trying to use unit test my CreateNewOrder method, which looks like this:
private void CreateNewOrder(INewOrderViewModel newOrderViewModel) { Logger.Log("Sending Create New Order Message", LogCategory.Info); var createNewOrderMessage = new OrderMessage(newOrderViewModel); _eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage); }
What should I do in the Mocking ILoggerService to return a valid Logger? At the moment, my unit test throws a NullReferenceExeception.
I use Moq to do bullying.
It seems to me that I need to do something line by line
var loggerService = new Mock<ILoggerService>(); loggerService.Setup(svc => svc.GetLog(??))
But I do not see how without executing my ILoggable test class.
Thanks in advance.
source share