2009-02-09 17 views
9

La mayoría de las publicaciones de stackoverflow sobre pruebas de unidades ASP.NET MVC hablan de un problema específico o algo específico para probar, como testing HtmlHelpers. Otros sobre el tema de las mejores prácticas tienen surprisingly few answers. Los videos disponibles que he visto son completely useless, en mi opinión, y sorprendentemente long (cuando miraste 1,5 horas y no aprendiste nada).¿Cuáles son las cosas más importantes para probar en una aplicación ASP.NET MVC?

Lo que quiero saber de personas que realmente han estado haciendo esto es:

  • ¿Cuáles son las cosas más importantes para poner a prueba primeros
  • Lo que no necesita prueba (el horror de choque para mí diciendo eso pero no estoy después del 100%)
  • ¿Qué es difícil para probar y cómo ha superado difíciles de probar.
  • Qué cosas pueden romperse en la refactorización que una prueba no detectará.

No soy nuevo en cuanto a la prueba de unidad, pero soy muy nuevo en realidad hacerlo constantemente. Realmente apreciaría las lecciones aprendidas de aquellos que son expertos en pruebas unitarias ASP.NET MVC.

Estoy realmente buscando cosas específicas que tal vez solo descubras después de haberlo probado, no consejos generales como 'usar interfaces', aunque por supuesto cualquier sugerencia es bienvenida.

Ah, y digamos que he decidido usar las pruebas unitarias de Microsoft, solo porque ya están allí. Sin embargo, creo que todas las respuestas se aplicarían a todos los marcos de prueba.

Respuesta

1

No creo que la respuesta deba ser específica de ASP.NET MVC. Como cualquier otra aplicación, lo más importante que debe probar es su lógica central. Es decir, su código de modelo y las acciones de su controlador.

+1

lo pregunté así por una razón. por ejemplo, hay cosas relacionadas con el enrutamiento, clases de resultados de acción específicos que las personas que lo han estado usando durante un tiempo pueden ofrecer consejos sobre –

7
  • Pruebe su ruta. Debe usar RouteLink para eliminar la ambigüedad cuando genera una URL en su Vista, pero cuando envía una URL, depende del sistema de enrutamiento para seleccionar la ruta correcta. Por lo tanto, compruebe que los patrones de URL que admite realmente devuelven la ruta correcta.
  • Pruebe las acciones de su controlador. Use un repositorio simulado y pruebe que invocar manualmente cada acción tenga los resultados que espera.
  • Pruebe toda la lógica comercial en su modelo. Esto es obvio y poco diferente de las aplicaciones que no son MVC.
  • Pruebe cualquier asistente de visualización personalizado que escriba. Aunque, en general, no evalúo las vistas de prueba, los ayudantes de vista son diferentes.
  • Pruebe su JavaScript. Existen marcos de pruebas unitarias para esto, que probar JavaScript es tan fácil que dichos marcos son apenas necesarios. Pero probar JavaScript es increíblemente importante, debido a la tendencia del lenguaje a esconder tus errores.
  • Si ha escrito carpetas de modelo personalizadas, necesitan una atención especial. Por un lado, es mucho más fácil depurar un archivador modelo a través de una prueba unitaria que cuando está "activo" en la aplicación.
3

Me gustaría dar más detalles sobre las acciones del controlador de prueba:

  • compruebe si lo consigue el correcto ActionResult. Una redirección es diferente de una vista.
  • También verifique el nombre de la vista esperada. Si confía en la vista predeterminada, debería estar vacía.
  • Verifica que obtienes el modelo de vista correcto.
  • Verifica todas las ramas en tu acción. Manténgalos al mínimo y muévalos a un ayudante/servicio cuando crezcan demasiados.

En resumen, verifique cualquier cosa del ActionResult que vaya a utilizar.

Cuestiones relacionadas