Я пишу некоторые модульные тесты для моего класса Model Model. Конструктору этого класса вводится ILoggerService. Этот интерфейс определяет 1 метод GetLog, который возвращает ILogger. Что-то, как показано ниже, где это представляет собой класс, который реализует ILoggable: -Как скомпоновать ILogger/ILoggerService с использованием Moq
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);
}
Как я пошел бы о Mocking ILoggerService, чтобы вернуть действительный Logger? В настоящий момент мой модульный тест выдает NullReferenceExeception.
Я использую Moq, чтобы делать издевательство.
Я воображал, что нужно сделать что-то вдоль линий
var loggerService = new Mock<ILoggerService>();
loggerService.Setup(svc => svc.GetLog(??))
Но я не могу видеть, как без моего теста класс реализации ILoggable.
Заранее спасибо.
Блестящий. Это сработало. Большое спасибо – user630190
Для справки я использую что-то вроде: 'var loggerMoq = Mock.Of>();' –
Nordes