Pregunta

Esta es la primera prueba para la aplicación Web Asp.Net. Tenemos un motor que consta de varios módulos. Necesito probar clases en el módulo del motor. A pesar de estas clases son parte de la aplicación Asp.Net, que consta de solamente la lógica de negocio.

¿Cómo puedo probar estas clases en aislamiento otro es parte del módulo web? porque yo estoy recibiendo este error

La solicitud Web ' http: // localhost: 8936 / ' completado con éxito sin correr la prueba. Esto puede ocurrir cuando la configuración de la aplicación web para la prueba falla (un error de servidor ASP.NET se produce al procesar la solicitud), o cuando no se ejecuta ninguna página ASP.NET (la URL puede apuntar a una página HTML, un servicio Web, o una lista de directorios). La realización de pruebas en ASP.NET requiere la URL de resolver a una página de ASP.NET y que la página se ejecuta correctamente al evento de carga. La respuesta de la petición se almacena en el archivo 'WebRequestResponse_BlogManagerBPOConstr.html' con los resultados de las pruebas; Normalmente, este archivo se puede abrir con un navegador Web para ver su contenido.

Gracias

EDIT: @ Marcos, este es uno de los TestMethods generados por el diseñador

/

// <summary>
        ///A test for BlogManagerBPO Constructor
        ///</summary>
        // TODO: Ensure that the UrlToTest attribute specifies a URL to an ASP.NET page (for example,
        // http://.../Default.aspx). This is necessary for the unit test to be executed on the web server,
        // whether you are testing a page, web service, or a WCF service.
        [TestMethod()]
        [HostType("ASP.NET")]
        [AspNetDevelopmentServerHost("D:\\WorkingCopies\\MyProject\\Engine", "/")]
        [UrlToTest("http://localhost:8936/")]
        public void BlogManagerBPOConstructorTest()
        {
            BlogManagerBPO target = new BlogManagerBPO();
            Assert.Inconclusive("TODO: Implement code to verify target");
        }
¿Fue útil?

Solución

El mensaje de excepción de que está recibiendo no suena como si fuera una unidad de prueba en absoluto. ¿Estás tratando de ejecutar un conjunto de Visual Studio de prueba Web en lugar?

Para las pruebas unitarias, simplemente debe ser capaz de crear instancia de las clases de lógica de negocio y prueba de ellos sin interferencia del tiempo de ejecución de ASP.NET.

En MSTEST, que podría tener este aspecto:

[TestMethod]
public void Test5()
{
    var sut = new Thing();
    var expectedResult = new object();
    sut.Bar = expectedResult;
    var actual = sut.Bar;
    Assert.AreEqual(expectedResult, actual);
}

(tal vez no sea la prueba más emocionante, aunque ...)

No hay detalles de ASP.NET en cualquier lugar que se encuentran.

Esto es mejor asegurada si se coloca la lógica de negocio en una biblioteca independiente y asegurarse de que no hace referencia a System.Web, etc.

Otros consejos

Establecer el atributo UrlToTest a la dirección URL en la prueba. Como:

[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("C:\\xx\\xx\\Documents\\Visual Studio 2010\\Projects\\xx\\xx", "/")]
[UrlToTest("http://localhost:xxx/examples.aspx")]
[DeploymentItem("examples.dll")]

O como Mark dijo, deshacerse de las
     [HostType("ASP.NET")] [AspNetDevelopmentServerHost("C:\xx\xx\Documents\Visual Studio 2010\Projects\xx\xx", "/")] [UrlToTest("http://localhost:xxx/examples.aspx")] [DeploymentItem("examples.dll")] Estaba tratando de usarlo en un proyecto de MVC y que aún no ha pasará hasta que se deshizo de ella

Sólo tienes que comprobar si ha añadido app.config a su proyecto de prueba y tiene ajustes necesarios de su web.config (del Proyecto servicio Web).

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