visual unitarias unit test studio pruebas net mvc ejemplo con c# asp.net visual-studio unit-testing

c# - test - ¿Cuál es la mejor manera de hacer pruebas unitarias para páginas web ASP.NET 2.0?



testing in c# visual studio (7)

Chico, esa es una pregunta bastante general. Haré mi mejor esfuerzo, pero prepárate para verme perder por una milla.

Suposiciones

  1. Está utilizando ASP.NET, no ASP simple
  2. Realmente no desea probar sus páginas web, sino la lógica detrás de ellas. La prueba unitaria de las páginas .ASPX reales es bastante dolorosa, pero existen marcos para hacerlo. NUnitAsp es uno.

Lo primero que debe hacer es organizar (o planificar) su código para que pueda ser probado. Los dos patrones de diseño más populares para este momento parecen ser MVP y MVC. Ambos separan la lógica de la aplicación de la vista para que pueda probar la lógica sin que la vista (páginas web) se interponga en su camino.

Ya sea MVP o MVC será efectivo. MVC tiene la ventaja de tener un marco de Microsoft casi listo para funcionar .

Una vez que haya seleccionado un patrón de marco que fomente la capacidad de prueba, debe usar una herramienta de prueba de la unidad. NUnit es un buen punto de partida. Visual Studio Professional tiene un conjunto de pruebas creado , pero NUnit + TestDrive.NET también funciona en el IDE.

Esa es una especie de ráfaga de información. Espero algo si me llega. The Pragmatic Bookshelf tiene un buen libro que cubre el tema .

¿Alguna sugerencia? Usando Visual Studio en C #.

¿Hay alguna herramienta específica para usar o métodos para abordar esto?

Actualizar:

Lo siento, debería haber sido un poco más específico. Estoy usando ASP.Net 2.0 y estaba buscando más una herramienta como jUnit para Java. Eché un vistazo a NUnit y NUnitAsp y eso se ve muy prometedor. Y ni siquiera sabía que Visual Studio Pro tiene un conjunto de pruebas, así que veré todas estas opciones (recién comencé a usar Visual Studio / Asp.net / C # este verano).


Hubo una serie de screencast hace un año en el podcast polimórfico que hizo una introducción bastante buena de una implementación de MVP en ASP.NET. Implementado de esta manera, las pruebas unitarias encajan de forma mucho más natural.

http://polymorphicpodcast.com/shows/mv-patterns/


Eche un vistazo a http://selenium.openqa.org/, que ofrece una buena forma automatizada para construir pruebas de unidades conectadas al navegador. hay un buen complemento de Firefox para registrar pruebas y puede utilizar casi cualquier marco de prueba de unidades. Tuvimos una presentación / demostración en nuestra reunión del grupo de usuarios local el mes pasado y se veía increíble.


WatiN es lo mejor que he encontrado. Se integra en pruebas de unidad de Visual Studio o nunit y puede hacer casi todo lo que necesita en el navegador (hacer clic en enlaces, enviar formularios, buscar texto / imágenes, etc.), además está escrito en .net, por lo que no necesita tener Ruby instalado (como lo haces con watir, que es una herramienta increíble, sin embargo)


Estos marcos son útiles para las pruebas de integración , pero no pueden proporcionar pruebas unitarias, es decir, probar la Vista aislada de persistencia, lógica comercial, lo que sea.

Para pruebas unitarias Asp.Net Webforms, así como también MVC, puede usar Ivonna . Por ejemplo, puede simular el acceso a su base de datos y verificar que los registros simulados se muestren en la cuadrícula de datos. O puede burlarse del proveedor de membresía y probar el escenario conectado sin tener que navegar a la página de inicio de sesión e ingresar sus credenciales, como con las pruebas de integración.


Su mejor apuesta es separar la lógica del modelo de la presentación y probar a fondo el modelo con NUnit o similar. Probar la interacción de los usuarios con la página web puede ser complicado.

Si realmente quieres probar la interacción de los usuarios con la página web, algunas de las herramientas mencionadas, como waitn, parecen buenas, una adición a la que he oído hablar es Selenium