2011-11-16 8 views
5

Buscando algunos consejos sobre cómo proceder aquí.Pruebas de integración Servicios de WCF encadenados con base de datos de prueba

Estoy tratando de hacer algunas pruebas de integración en los servicios wcf que llaman a otros servicios wcf. Quiero asegurarme de que estén configurados correctamente entre ellos. Actualmente estamos usando spring.net y Nhibernate. De lo que no estoy seguro es de cómo verificar que la base de datos se actualice sin guardar nada en la base de datos.

Tengo los servicios msmq y wshttp que intento probar aquí. Estoy familiarizado con las transacciones, ya que las usamos en primavera, pero no tengo idea de cómo configurar mis pruebas para deshacer la transacción en un servicio que no está siendo probado directamente por la prueba de integración.

En este momento, la única opción que he encontrado es utilizar una base de datos de prueba y datos de prueba, pero parece que tiene que haber una solución mejor que esta.

+3

¿Por qué preferiría ** probar ** su software en una base de datos de ** producción **, en lugar de una base de datos ** de prueba? – CodeCaster

+0

¿Quizás me malinterpretaste? La única opción que he tenido hasta ahora es crear una base de datos de prueba y datos de prueba. –

+1

¿Podría configurar todos sus servicios para usar la misma base de datos y compartir el mismo 'SessionFactory'? – Marijn

Respuesta

0

Decidí ir con una implementación que es específica de la aplicación. Básicamente, crear una base de datos de prueba y hacer que nuestra aplicación llegue a la base de datos de prueba en función de algunos valores que se pasan a nuestro servicio.

0

Quizás pueda burlarse de los servicios que actualizan la base de datos (o la capa DAL) usando algo como Moq, evite la llamada a la base de datos y verifique con el método de verificación del simulacro que se realizará la llamada a la base de datos. En nuestro proyecto estamos usando esta biblioteca con wcf con muy buenos resultados.

+0

Esta es una buena idea si desea probar si los servicios están cableados correctamente, pero esto realmente no confirmará que se envíe el SQL correcto a la base de datos. Y creo que esto es lo que OP pretende hacer. – Marijn

+0

Tal vez burlarse de la capa de acceso a datos en lugar de los servicios wcf hará el truco. No sé cómo se implementa esto, pero si tal capa existe, es fácil ver si se ejecutará el sql correcto sin ejecutarlo. – Diego

+0

Sí, hago esto cuando pruebo las interfaces. Pero no hay forma de realizar ningún simulacro en el servicio al que se llama indirectamente. –

Cuestiones relacionadas