У меня есть метод в службе, которую я хочу проверить. Этот метод вызывает другой метод в том же классе. Этот метод уже протестирован, поэтому я хочу издеваться над этим методом.Издевательский метод в том же интерфейсе с MOQ
Это моя установка:
private readonly Mock<INewsLetterRepository> _mockNewsLetterRepository;
private readonly Mock<INewsLetterService> _mockNewsLetterService;
private readonly INewsLetterService _newsLetterService;
public NewsLetterServiceTest()
{
_mockNewsLetterRepository = new Mock<INewsLetterRepository>();
_mockNewsLetterService = new Mock<INewsLetterService> {CallBase = true};
_newsLetterService = new NewsLetterService(_mockNewsLetterRepository.Object);
}
И это испытание я использую:
Теперь проблема заключается в том, что функция Я насмешливо: BuildNewsLetterHTML возвращает нуль, а не содержание он должен был вернуться.
Вот упрощенная версия функции Я хочу, чтобы тест:
public string CreateNewsLetter(NewsLetter newsLetter)
{
var newsletterHTML = BuildNewsLetterHTML(newsLetter);
return newsletterHTML;
}
Таким образом, проблема в том, что, по крайней мере, как я вижу, что функция I издеваться не возвращает строку содержимого он должен был вернуться. Тест завершается с ошибкой на Assert.AreEqual
, потому что фактическое значение null. У любого из вас есть идея, почему фактическое значение null?
Заранее спасибо.
Благодарим вас за ответ. Я попробовал ваш метод, и он работает как шарм! – Gerard