2009-11-07 3 views
6

Estoy en un punto en el que me gustaría comenzar a escribir pruebas unitarias para mi aplicación MVC. Ya he descubierto cómo probar el controlador por unidad y puedo probar de forma unitaria las bibliotecas de negocios subyacentes sin ningún problema. Estoy que se despegue en un par de artículos embargo:¿Cómo puedo probar las vistas de prueba y los atributos de autorización de mi aplicación asp.net mvc en nUnit?

  • ¿Cómo unidad de prueba de mis puntos de vista? Es decir, después de que un controlador haya devuelto la vista correcta (que he probado en la unidad, junto con la prueba unitaria para verificar que transmita los datos correctos). ¿Existe alguna manera de probar la unidad que la vista muestra los datos correctos en los campos correctos en nUnit o necesito una herramienta diferente para este propósito?

  • ¿Cómo compruebo la unidad de la seguridad? Estoy utilizando un proveedor de membresía personalizado y un proveedor de roles que, en sí mismos, supongo que se pueden probar por unidad como cualquier otro componente: simplemente reactivar el proveedor y verificar que cada uno de los métodos arroje el resultado esperado. Lo que me llama la atención es cómo comprobar por unidad que cada uno de mis métodos de control está recibiendo la información de seguridad correcta de mis proveedores [es decir prueba unitaria de que el atributo Autorizar funciona correctamente]?

Respuesta

3

Aquí hay una publicación de blog sobre la unidad de prueba de componentes de autorización personalizados. No se ocupa de RoleProviders y MembershipProviders, pero debería poder utilizar de manera efectiva el mismo método para probar cualquier cantidad de filtros.

http://darioquintana.com.ar/blogging/2009/05/23/aspnet-mvc-testing-a-custom-authorize-filters/

responsabilidad: Puede ser que tome un par de análisis sintácticos de entender que - no es muy claramente escrito y el código de ejemplo proporcionado no corta exactamente a la persecución, pero que también debe ser capaz de recoger lo lo necesitas de eso.

0

Para las pruebas de integración por debajo de la interfaz de usuario (Controladores y abajo) se puede usar algo como Fit, FitNesse, Slim, o incluso StoryTeller.

Para las pruebas de IU (sus Vistas) debe considerar el uso de Selenium y Selenium RC.

Me doy cuenta de que esta es una gran cantidad de información, pero le conviene cuando se trata de una solución de prueba más robusta.

+0

Para los controladores y hacia abajo, tiendo a usar nUnit: ya estoy familiarizado con las pruebas unitarias a nivel de biblioteca, así que eso no es un problema. Admitiré que nunca he oído hablar de Slim o StoryTeller, así que los revisaré. Sin embargo, revisaré Selenium para ver la vista. – BobTheBuilder

+0

Selenium RC ciertamente parece interesante. No se me ocurrió que las pruebas unitarias se realizarían en el navegador mismo. Mi percepción original era que la prueba unitaria se ejecutaría en nUnit en la salida HTTP. – BobTheBuilder

+0

Desea una separación clara de inquietudes incluso en las pruebas de su unidad. Normalmente no dejo que mis pruebas de unidad (Nunit, MsTest, etc.) toquen la base de datos ni nada que no sea el tema actual bajo prueba. Fit, FitNesse, Slim y StoryTeller son excelentes para las pruebas de integración, pero no deben usarse para pruebas unitarias. Probar la interfaz de usuario debe ser muy superficial y solo debe probar que la interfaz de usuario hace lo que se supone que debe hacer. No debe bajo ninguna circunstancia verificar cosas debajo del capó (es decir, base de datos, controladores, etc.) – Josh

1

Puede usar Ivonna, una herramienta comercial, o MvcIntegrationTestFramework, una gratis. Ambos soportan probar tus vistas en proceso, pero Ivonna te permite burlar el resto, ajustar tu configuración, etc., así que está más en el lado de las pruebas de la unidad.

Cuestiones relacionadas