Ответ 1
Посмотрите MvcContrib Testhelpers. Хорошие примеры там также
Как вы можете проверить, что метод действия, который у вас есть, вернет правильный вид, потому что Viewname является пустой строкой? Должен ли я даже проверить это? Я не уверен, сколько модулей нужно делать, я думаю, что вы можете создать множество модульных тестов!
public ActionResult Index()
{
return View();
}
[TestMethod]
public void DetermineIndexReturnsCorrectView()
{
HomeController controller = new HomeController();
ViewResult result = controller.Index() as ViewResult;
//****result.ViewName is empty!!!!***//
Assert.AreEqual("Index", result.ViewName);
}
Посмотрите MvcContrib Testhelpers. Хорошие примеры там также
Проверьте тип результата.
//Act
var result = controller.Create();
//Assert
Assert.IsInstanceOfType(result, typeof(ViewResult));
Затем напишите отдельные тесты для случаев RedirectToRouteResult и обработайте также случаи исключения, и вы установите.
Внутри действия вашего контроллера вы не указали имя вида, чтобы оно было пустым. В этом случае MVC принимает имя представления так же, как имя действия.
Должен ли я даже проверить это?
Вы должны обязательно проверить это.
Assert.AreEqual(string.Empty, result.ViewName);
Я не уверен, сколько модульных тестов делать...
Сколько можно. Подумайте, что это инвестиции, которые могут сэкономить вам много времени.
Пример кода MvcContrib TestHelpers будет выглядеть как
var result = _testController.Details("ref").AssertViewRendered().ForView("TestDetails");
Это проверяет, что метод _testController Details возвращает представление "TestDetails"
Если у вас есть представление типа
public ActionResult Index()
{
return View();
}
свойство ViewName
примет значение по умолчанию ""
. Вам нужно указать ViewName
как
public ActionResult Index()
{
return View("Index");
}
чтобы решить эту проблему.