К сожалению, я неправильно вставил код в stackoverflow. В коде есть только 1 назначение _userMailerMock. Тем не менее получить ту же ошибку.
могу успешно запустить модульные тесты для MvcMailer с использованием Visual Studio Test Suite и Moq. Я скопировал пример из вики слово в слово, но каждый раз получаю следующее исключение:
Test method MvcMailerTest.Tests.MailerTest.TestMethod1 threw exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: httpContext
Код выглядит следующим образом: (Использование инфраструктуры модульного тестирования VS - точно такая же ошибка при использовании nUnit, как в примере)
//Arrange: Moq out the PopulateBody method
var _userMailerMock = new Mock<UserMailer>();
_userMailerMock.Setup(mailer => mailer.PopulateBody(It.IsAny<MailMessage>(), "Welcome", null));
_userMailerMock.CallBase = true;
//Act
var mailMessage = _userMailerMock.Object.Welcome();
Сбой в следующей строке в методе Welcome () (скопировано прямо из вики):
PopulateBody(mailMessage, viewName: "Welcome");
Вики здесь:https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
Подобный (почти точно такой же) вопрос:MvcMailer: Не удается завершить тесты NUnit в Razor Views, которые используют Url.Action
Кто-нибудь знает, как это исправить / обойти? Связанный вопрос говорит, что мне нужно смоделировать метод PopulateBody, который я сделал (согласно вики).