2012-02-27 15 views
6

Necesito probar algunos componentes HTTP en mi aplicación Delphi. Yo uso DUnit y quiero agregar algo de automatización en las pruebas.Servidor HTTP para pruebas unitarias en Delphi

Así que mi código de prueba debe iniciar el servidor HTTP local, configurarlo (por ejemplo, prepararse para el corte de la conexión en 3 segundos o simular un ancho de banda bajo, o solicitar el inicio de sesión/contraseña, etc.), ejecutar mi unidad prueba y cierra el servidor HTTP.

¿Hay algunos servidores HTTP disponibles exactamente para Delphi/DUnit?

sé que el equipo de Mozilla tiene such server, pero no es demasiado fácil para integrarlo en DUnit.

Respuesta

9

utilizo Indy de TIdHttpServer para servir cosas en el mismo proceso.

Este enfoque permite que compruebe que las peticiones que llegan son correctos, así como comprobar el comportamiento del cliente final.

Además, puede configurar individualmente el servidor en una base de prueba por caso de prueba, haciendo que sus pruebas de unidad sean más fáciles de entender (lo que significa que no tiene una parte de la 'prueba' en otro lugar).

0

Puede usar la prueba unitaria/DUnit para construir pruebas de integración automáticas. Digamos, usted, los componentes HTTP como el cliente http que realiza llamadas a un servicio web. Puede hacer su propio servicio web simulado o simplemente usar cualquier servicio web público, como uno de Google o Amazon. Por lo tanto, solo necesita crear una cuenta de desarrollador de Google o Amazon y consumir algunas funciones básicas del servicio para realizar pruebas.

0

Si está probando servicios SOAP, utilice SoapUI a ponerse de pie un servicio de "simulacro" en función de su WSDL. Puede hacer que devuelva una variedad de respuestas (ya sea de forma secuencial o utilice algunas secuencias de comandos simples para hacer coincidir las respuestas a los contenidos de la solicitud). Lo hice haciendo coincidir el "ID de solicitud" (solo un GUID) en mi solicitud enviada desde la prueba DUnit, a una respuesta en el SoapUI. Es una consulta simple xpath para hacer coincidirlos.

Usted puede tener que devolver errores/excepciones "enlatados", y por supuesto cuando no se está ejecutando, tendrá el caso de prueba "hay nadie en casa".