Pregunta

Tengo una aplicación que envía mensajes a un servicio web externo.Voy a construir e implementar el uso de esta aplicación MSBuild y Cruisecontrol.NET.Como CCNET construir y despliega la aplicación también se ejecuta un conjunto de test utilizando NUnit.Me gustaría probar el servicio web de comunicación también.

Mi idea es que, como parte del proceso de creación de un servicio web debe ser generado (basado en el externo de servicios web WSDL) y se implementa en los servidores de compilación del servidor web local.Todo el servicio web debe hacer es recibir el mensaje y lo coloca en el sistema de archivos así que, a continuación, puede comprobar que el uso ordinario de NUnit, por ejemplo.Esto también haría más fácil el desarrollo como nuevos los desarrolladores sólo tienen que ejecutar el script de compilación y estar en marcha y funcionando (no tiene que pasar tiempo para configurar una conexión para el servicio de terceros).

Hay existente utilidades que fácil burlarse de un servicio web basado en una WSDL?Nadie hecho algo similar con MSBuild?

Hay otras formas de pruebas de este escenario?

¿Fue útil?

Solución

Acabo de empezar a mirar en http://www.soapui.org/ y parece que va a trabajar muy bien para las pruebas de los servicios web.

También, tal vez contemplar la adición de una capa de abstracción en el servicio web, cada llamada de servicio directamente llamaría un comprobables método (fuera de la web alcance)?Yo solo hice esto con un gran proyecto en el que estoy trabajando, y es la capacidad de prueba está trabajando muy bien.

Otros consejos

En general, una muy buena manera de probar este tipo de cosas es para uso simulacro de objetos.

En el trabajo, utilizamos el producto TypeMock para probar cosas como en la Web del Servicio de comunicación y otros fuera de las dependencias.Cuesta dinero, así que por esa razón puede que no sea adecuado para sus necesidades, pero creo que es un producto fantástico.Te puedo decir por experiencia personal que se integra muy bien con NUnit y CCNet.

Tiene una muy simple sintaxis de donde, básicamente, decir "cuando esta propiedad o método es llamado, quiero que devolver este valor en su lugar." Es ideal para probar cosas como fallas de la red, los archivos no están presentes, y por supuesto, los servicios web.

Echa un vistazo a NMock2.Es una fuente abierta de la burla del producto y permite crear "virtual" de las implementaciones de las interfaces que soportan rico y profundo de la interacción.

Por ejemplo, si el WS de la interfaz se llama IService y tiene un Data GetData() método, puede crear una maqueta de la que requiere el método que se llama una vez y devuelve una nueva Data objeto:

var testService = mockery.NewMock<IService>();
Expect
    .Once
    .On(testService)
    .Method("GetService")
    .WithNoArguments()
    .Will(
        Return.Value(new Data());

Al final de la prueba, llame mockery.VerifyAllExpectationsHaveBeenMet() para asegurar que el GetData el método se llama en realidad.

P. S.:no hay que confundir el "NMock2" proyecto con el "NMock RC2", que también se llama "nmock2" en sourceforge.NMock2 el proyecto parece haber sustituido NMock.

Esto también podría ser algo - Ruiseñor.Parecen útiles.

En mi lugar de trabajo que estamos utilizando Typemock y nUnit para nuestra unidad de pruebas.

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