60

Me doy cuenta de que este es un duplicado de aproximadamente 20 publicaciones diferentes, pero ninguna de ellas es específica de MVC4, y ninguna que he visto realmente responde todas mis preguntas. Hasta ahora, mi primera incursión en el mundo de TDD ha sido frustrante por decir lo menos. La mayoría de lo que he intentado hacer parece incompatible con MVC 4 o casi imposible sin utilizar bibliotecas de terceros mal documentadas que aún no entiendo del todo.Pruebas unitarias ASP.NET MVC 4 aplicaciones a fondo

Lo que quiero poder hacer es escribir unas pruebas que verifiquen mis Acciones de controlador, el modelo que están pasando y La vista a la que la acción está enviando el modelo. Quiero probar si la vista existe, quiero probar si el modelo que se pasa es del tipo correcto para la vista, me gustaría alguna manera de probar si se procesará correctamente. También quiero poder probar mis rutas. ¿Y probar los filtros de autenticación?

Quiero una forma de probar la unidad ASP.Net MVC que dejará muy poco al azar.

Probar el resultado del Modelo de una Acción parece bastante fácil, pero probar las vistas ha sido casi imposible.

Así que aquí está mi lista de preguntas:

  1. Una vez que pongo a prueba la acción y obtener el resultado de la acción, ¿Cómo se prueba para ver si la vista que quiere existe?
  2. ¿Cómo puedo probar mis rutas?
  3. ¿Cómo puedo realizar las pruebas para asegurarme de que mis vistas se procesan correctamente?
  4. ¿Cuál es realmente la "mejor práctica" para las pruebas de unidad THOROUGH de ASP.Net MVC 4?
  5. ¿Cómo puedo verificar la autentificación de formularios?
  6. ¿Cómo puedo probar la unidad de filtros de acción?

Preferiría usar los proyectos de prueba integrados de Visual Studio, pero si debo usar NUnit, debo hacerlo. Solo necesito asegurarme de que se haga correctamente.

Gracias de antemano por sus respuestas.

EDIT:. Tampoco podía conseguir NUnit trabajar con mi aplicación MVC4 a causa de alguna manera incompatible con la versión de .NET uno de los conjuntos fue compilado en

+2

Probablemente sea mejor que busque esas preguntas individualmente. Si no aparece nada, haga una pregunta por separado para cada uno. – mxmissile

Respuesta

59
  1. Making sure a view exists
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. ver más abajo
  5. How can I unit test my ASP.NET MVC controller that uses FormsAuthentication?
  6. How-to test action filters in ASP.NET MVC?

no. 4: Esta es una pregunta difícil. ¿Cómo se prueba nada minuciosamente?Personalmente, realmente no pruebo los puntos de vista, a excepción de los 3 principales navegadores y mis dos ojos, ya que es difícil probar un sitio web y todos sus componentes sin usarlo realmente. Tiene JavaScript activado, CSS estilizado, y se ve diferente en diferentes navegadores. Entonces, para mí, parece que probar la vista es una parte menor de la usabilidad general de su sitio. Si está desarrollando un informe simple basado en tablas de datos financieros, pruebe esos datos con fuerza. Si su punto de vista es la base de un sofisticado sitio Ajax, tal vez no pruebe tanto el HTML como la experiencia. Sé que no es una respuesta fácil, sin complicaciones, pero el nivel aceptable de cobertura siempre implica compensaciones.

+0

Uso Visual Studio 2013. Descargué el Generador de pruebas unitarias para resolver el problema de la opción Generar prueba unitaria que no se muestra. El problema es que esas pruebas unitarias que crea están en Visual Basic y no en C#. ¿Sabe si hay alguna información actualizada sobre cómo usar las guías del Generador de pruebas unitarias? No he tenido suerte ahora. – user2952272

+2

Nota: El enlace en el n. ° 2 no funciona. El enlace de trabajo está aquí: http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/ –

Cuestiones relacionadas