Piszę niektóre testy jednostkowe dla mojej klasy View Model. Konstruktorowi tej klasy wstrzyknięto ILoggerService. Ten interfejs definiuje 1 metodę GetLog, która zwraca ILogger. Coś jak poniżej gdzie to reprezentuje klasę implementującą ILoggable: -Jak wyśmiać ILogger/ILoggerService za pomocą Moq
protected ViewModelBase(ILoggerService loggerService)
{
Logger = loggerService.GetLog(this);
}
próbuję jednostki przetestować metodę CreateNewOrder który wygląda jak poniżej:
private void CreateNewOrder(INewOrderViewModel newOrderViewModel)
{
Logger.Log("Sending Create New Order Message", LogCategory.Info);
var createNewOrderMessage = new OrderMessage(newOrderViewModel);
_eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage);
}
Jak pójdę o Kpiąc z ILoggerService, aby zwrócić prawidłowy Logger? W tej chwili mój test jednostki rzuca NullReferenceExeception.
Używam Moq do kpiny.
Wyobrażam sobie muszę zrobić coś wzdłuż linii
var loggerService = new Mock<ILoggerService>();
loggerService.Setup(svc => svc.GetLog(??))
Ale nie widzę w jaki sposób bez dokonywania moja klasa próba wdrożenia ILoggable.
Z góry dziękuję.
Genialny. To sprawiło przyjemność. Wielkie dzięki – user630190
Dla odniesienia, używam czegoś takiego: 'var loggerMoq = Mock.Of>();' ' –
Nordes