Pruebas unitarias para servicios Web ASP.NET
Hay algunas diferencias entre las pruebas unitarias para clases y para servicios Web ASP.NET. Lo más importante es que el proyecto debe contener un archivo .aspx. En este tema se explica cómo hacerlo y también describe lo que sucede en su proyecto de prueba cuando se crea una prueba unitaria para un servicio Web ASP.NET.
Para obtener más información sobre cómo ejecutar pruebas de rendimiento en sitios web, vea Crear y modificar pruebas de rendimiento web. Para obtener más información acerca de las pruebas unitarias para clases, vea Cómo: Crear y ejecutar una prueba unitaria.
Requisitos previos
Asegúrese de que ha instalado los siguientes componentes de IIS:
Compatibilidad con la configuración de IIS 6 y metabase de IIS 6
Asegúrese de que haya un archivo .aspx en el proyecto
Para ejecutar una prueba unitaria, debe haber un archivo .aspx en el proyecto que contiene el servicio Web ASP.NET. Sin un archivo .aspx, aparentemente podrá crear pruebas unitarias pero, al intentar ejecutarlas, recibirá un error que dice que la solicitud web se completó correctamente sin ejecutar la prueba. Sin embargo, la prueba no se ejecutó realmente.
Para agregar un archivo .aspx
En el Explorador de soluciones, haga clic en el proyecto que contiene el servicio Web ASP.NET, haga clic en Agregar y, a continuación, haga clic en Nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, en Plantillas instaladas, haga clic en Web.
En la lista de plantillas web, haga clic en Web Forms y, a continuación, haga clic en Agregar.
Se agregan tres nuevos archivos al proyecto: WebForm1.aspx, WebForm1.aspx.cs y WebForm1.aspx.designer.cs. No tiene que modificar ni utilizar estos archivos.
Qué ocurre al generar una prueba unitaria para un servicio Web ASP.NET
La siguiente figura muestra un método de prueba que se genera para un proyecto de servicio Web ASP.NET simple. Para obtener información sobre más cambios generales que se producen al crear una prueba unitaria, vea Anatomía de las pruebas unitarias.
Método de prueba unitaria de ASP.NET
Todas las pruebas unitarias se generan con un atributo [TestMethod ()].
El atributo [Host Type ()] especifica el adaptador host en el que se ejecutará la prueba unitaria. No tiene que cambiar este atributo.
El atributo [AspNetDevelopmentServerHost()] especifica la configuración que debe utilizarse cuando un servidor de desarrollo de ASP.NET es el servidor host para la prueba. Este atributo solo se incluye si el servicio Web ASP.NET se ejecuta en el sistema de archivos en lugar de un proceso IIS. No tiene que cambiar este atributo.
El atributo [UrlToTest ()] especifica la dirección URL del servicio Web ASP.NET de la prueba unitaria.
El resto es el cuerpo del método de prueba. Probablemente deseará inicializar las variables y modificar Asserts en el método de prueba.
Nota
Para obtener más información sobre los atributos aquí descritos, vea
Si está ejecutando Windows Vista, ejecute Visual Studio como administrador
Si está ejecutando Windows Vista, debe ejecutar Visual Studio como administrador para ejecutar las pruebas unitarias de ASP.NET. Si ejecuta Visual Studio como usuario normal, puede crear un sitio web, y crear y ejecutar pruebas de ASP.NET, pero al ejecutar las pruebas se producirá un error. Para ejecutar Visual Studio como administrador, haga clic con el botón secundario del mouse en Microsoft Visual Studio 2010 en el menú Inicio y, a continuación, haga clic en Ejecutar como administrador.
Si ejecuta IIS como un usuario no predeterminado, asegúrese de habilitar todos los permisos necesarios
Al crear un servicio Web ASP.NET, elija como ubicación Sistema de archivos, HTTP o FTP. Si elige Sistema de archivos, se utilizará el proceso del Servidor de desarrollo de ASP.NET. Si elige HTTP o FTP, se utilizará el proceso IIS.
Si el servicio Web ASP.NET se está ejecutando en el proceso IIS, puede decidir ejecutar la prueba unitaria como un usuario no predeterminado por razones de seguridad. Un usuario no predeterminado es una identidad de proceso diferente.
Por ejemplo, si el servicio Web de ASP.NET tiene que obtener acceso a los recursos del equipo, como carpetas, archivos o una determinada base de datos, puede optar por ejecutarlo para que sus permisos en estos recursos sean justo los suficientes, ni uno más.
Si el servicio Web requiere un permiso que el usuario no predeterminado no tiene, se podría producir un error en la prueba unitaria. Por ejemplo, el proceso de ASP.NET que está ejecutándose como un usuario no predeterminado podría haber restringido los permisos, pero aún podría intentar generar archivos temporales en la carpeta %WINDIR%\Temp. Esto podría generar errores si los permisos predeterminados en %WINDIR%\Temp no conceden al proceso acceso suficiente para generar esos archivos. En tal caso, para que la ejecución de la prueba unitaria se realizase correctamente, tendría que conceder al proceso permisos de mayor nivel en la carpeta %WINDIR%\Temp.
Vea también
Referencia
Microsoft.VisualStudio.TestTools.UnitTesting