2010-08-25 14 views
9

Busco lo más completa posible de un reemplazo y la envoltura maqueta para el ASP.NET HttpContext en mis aplicaciones. Un reemplazo simulado completo podría aumentar sustancialmente la capacidad de prueba de mis aplicaciones web ASP.NET sustancialmente, sin necesidad de migrar cada aplicación a marcos más comprobables como MVC.¿Cuál es el marco de burla más completa para HttpContext

Algunas de las características que más me interesa ver en un envoltorio y HttpContext marco simulacro incluyen:

  • almacenamiento de sesión serializado (por ejemplo, .Session).
  • Almacenamiento en el ámbito de la aplicación serializada (por ejemplo, .Application).
  • Almacenamiento de elementos por solicitud (por ejemplo, .Items).
  • Datos HttpRequest, como referencias, URI de solicitud, variables de servidor, datos de entrada, etc.
  • HttpResponsa datos, como códigos de estado y contenido.
  • resolución del archivo local (por ejemplo Server.MapPath)
  • VirtualPathUtility para la resolución ruta URL aplicación relativa, que tiene una dependencia en el tiempo de ejecución de ASP.NET.
  • La identidad y principal (por ejemplo, .User) para la validación de normas de autenticación/autorización.
  • La colección AllErrors para la solución de prueba de error en HttpModule s y Global.asax.

Consideré escribir mi propia interfaz, envoltorio y simulacro; sin embargo, creo que ya debe existir. La variedad de frameworks simulados es un poco abrumador para que un principiante lo absorba.

¿Cuál es la más completa HttpContext envoltorio y maqueta que usted recomendaría?

Respuesta

2

Mi empresa se han hecho bien con sólo la creación de interfaces para todos los objcets http (IHttpRequest, IHttpResponse, etc).

Es un poco repetitivo pero básicamente necesita todos los métodos y propiedades en la interfaz y luego crea un tipo concreto para cada uno que toma el tipo real como parámetro constructor y pasa todos los métodos y propiedades al objeto real.

A continuación, puede probar todo con facilidad utilizando RhinoMocks o lo que sea ..

+0

Parece que eres el más correcto. .NET 3.5 introduce 'HttpContextBase', pero antes de eso, la burla solo era posible con envoltorios personalizados. Creo que sería beneficioso ver una envoltura simulada bien diseñada para HttpContext para facilitar la prueba funcional automatizada mejorada. Voy a mantener mis ojos fuera. – kbrimington

1

Salida del marco moq. Este es el marco de burla que utiliza el equipo de MVC y muchos (incluido yo mismo) tienen la barrera de entrada más baja. También echa un vistazo a los ayudantes de burla en el proyecto MvcContrib.

+0

La pregunta no es para ASP.NET MVC, pero para ASP.NET Web Forms. Para MVC, burlarse del contexto HTTP es fácil. :) – bzlm

+0

Oops - Me corresponde corregir. –

+0

No hay necesidad de votos abajo aquí. Echaré un vistazo a moq. ¿Es posible/práctico usar clases MvcContrib en ASP.NET tradicional? – kbrimington

Cuestiones relacionadas