Я пишу модульные тесты для своего класса View Model. В конструктор этого класса вводится ILoggerService. Этот интерфейс определяет 1 метод GetLog, который возвращает ILogger. Что-то вроде ниже, гдеэтопредставляет класс, который реализует ILoggable:-
protected ViewModelBase(ILoggerService loggerService)
{
Logger = loggerService.GetLog(this);
}
Я пытаюсь выполнить модульное тестирование моего метода CreateNewOrder, который выглядит следующим образом:
private void CreateNewOrder(INewOrderViewModel newOrderViewModel)
{
Logger.Log("Sending Create New Order Message", LogCategory.Info);
var createNewOrderMessage = new OrderMessage(newOrderViewModel);
_eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage);
}
Как мне сделать имитацию ILoggerService, чтобы возвращается действительный регистратор? На данный момент мой модульный тест выдает исключение NullReferenceExeception.
Я использую Moq для насмешек.
Я полагаю, что мне нужно сделать что-то вроде
var loggerService = new Mock<ILoggerService>();
loggerService.Setup(svc => svc.GetLog(??))
Но я не понимаю, как это сделать, если мой тестовый класс не реализует ILoggable.
Заранее спасибо.