Si llegamos a SomeController.SomeAction()
pero el archivo SomeAction.cshtml no se encuentra obtenemos un System.InvalidOperationException y el mensaje de error de salida ...¿Cómo comprobar que la llamada de una acción a View() no ha arrojado una excepción?
La vista 'algunaAccion' o su maestro no se encontró o no view engine admite las ubicaciones buscadas. Los siguientes lugares se realizaron búsquedas: ... etc
Sin embargo, incluso con este archivo que falta la prueba a continuación pasará como un ViewResult está siendo devuelto todavía.
¿Cuál es la mejor manera de comprobar la llamada de la acción a View()
no ha iniciado una excepción y en silencio regresado esto en ViewResult contenido?
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>());
}
NOTA: Este es un ejemplo trivial de un problema mayor, hay una buena razón para realizar este tipo de prueba en este punto, pero este no es el foro para que discusión.
¿Tal vez si eliminas el elenco para ViewResult? – Dave
'Algún contexto adicional:' Algunas personalizaciones de motor de vista significan que el código anterior buscará el árbol de Vistas dinámicamente en función del código que no se muestra y hay cientos de posibles permutaciones del árbol de búsqueda. – gingerbreadboy