Если мы нажмем SomeController.SomeAction()
, но файл SomeAction.cshtml не найден, мы получим System.InvalidOperationException и сообщение об ошибке вывода ...
Представление SomeAction или его мастер не найдены, или никакой механизм просмотра не поддерживает искомые местоположения. Были найдены следующие местоположения: ... etc
Однако, даже если этот файл отсутствует, приведенный ниже тест пройдет, поскольку ViewResult все еще возвращается.
Каков наилучший способ проверить, что вызов действия View()
не выдал исключение и тихо возвратил это в ViewResult контенте?
public class SomeController: Controller
{
public ActionResult SomeAction()
{
var viewModel = new SomeModel();
return View(viewModel);
}
}
[Test]
public void TestIndex(Type clientType)
{
var controller = new SomeController();
var result = (ViewResult)controller.SomeAction();
Assert.That(result, Is.TypeOf<ViewResult>());
}
ПРИМЕЧАНИЕ. Это тривиальный пример более серьезной проблемы, на данном этапе есть веские основания для проведения такого рода тестов, но это не форум для этого обсуждения.