¿Cuál es la mejor manera de realizar pruebas unitarias para páginas web ASP.NET 2.0?[cerrado]

StackOverflow https://stackoverflow.com/questions/4363

Pregunta

¿Alguna sugerencia?Usando Visual Studio en C#.

¿Existen herramientas específicas 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 buscaba más una herramienta como jUnit para Java.Eché un vistazo a NUnit y NUnitAsp y parece muy prometedor.Y ni siquiera sabía que Visual Studio Pro tiene un conjunto de pruebas, así que analizaré todas estas opciones (acabo de empezar a usar Visual Studio/Asp.net/C# este verano).

¿Fue útil?

Solución

Vaya, esa es una pregunta bastante general.Haré lo mejor que pueda, pero prepárate para verme perder por una milla.

Suposiciones

  1. Estás utilizando ASP.NET, no ASP simple.
  2. Realmente no deseas probar tus páginas web, pero el lógica detrás de ellos.Las pruebas unitarias de las páginas .ASPX reales son bastante dolorosas, pero existen marcos para hacerlo. NUnitAsp es uno.

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

MVP o MVC serán efectivos.MVC tiene la ventaja de tener un framework de Microsoft casi listo para ir.

Una vez que haya seleccionado un patrón de marco que fomente la capacidad de prueba, debe utilizar una herramienta de prueba unitaria. Unidad N es un buen punto de partida.Visual Studio Professional tiene una el conjunto de pruebas lo construyó, pero NUnidad + TestDrive.NET También funciona en el IDE.

Es una especie de ráfaga de información.Espero que alguna si acierte.La estantería pragmática tiene un buen libro que cubre el tema.

Otros consejos

Hubo una serie de screencast hace aproximadamente un año en Polymorphic Podcast que hizo una introducción bastante buena a una implementación de MVP en ASP.NET.Implementadas de esta manera, las pruebas unitarias se implementan de manera mucho más natural.

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

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

Para unidad Al probar Asp.Net Webforms, así como MVC, puede usar ivona.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 de inicio de sesión sin tener que navegar a la página de inicio de sesión e ingresar sus credenciales, como ocurre con las pruebas de integración.

WatiN es lo mejor que he encontrado.Se integra con las pruebas unitarias de Visual Studio o nunit y puedes hacer prácticamente cualquier cosa que necesites en el navegador (hacer clic en enlaces, enviar formularios, buscar texto/imágenes, etc.), además está escrito en .net, por lo que no necesitas tener instalado Ruby (como lo hace con Watir, que de todos modos es una herramienta increíble)

Echa un vistazo a http://selenium.openqa.org/ Ofrece una buena forma automatizada de crear pruebas unitarias que se conecten al navegador.Existe un buen complemento de Firefox para grabar pruebas y puede utilizar casi cualquier marco de pruebas unitarias.Tuvimos una presentación/demostración en la reunión de nuestro grupo de usuarios local el mes pasado y se veía increíble.

Lo mejor que puede hacer es separar la lógica del modelo de la presentación y probar exhaustivamente el modelo con NUnit o similar.Probar la interacción de los usuarios con la página web puede resultar complicado.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top