Supongo que hay diferentes formas de hacerlo. Trato de evitar las pruebas de integración tanto como puedo pero en algún momento es necesario, por supuesto. Esto es solo una sugerencia de lo que haría:
- El uso de behavior driven approach define claramente los escenarios que desea probar.
- Do unit testing (No integration), a los procedimientos que representarán las salidas de un módulo.
- La unidad prueba los procedimientos que se supone que usan entradas de otros módulos, pero usando mocks. Probando la lógica de otro módulo en la corriente.
- Realice smoke tests, este tipo de prueba asegurará que sus módulos se puedan comunicar entre sí (Este es un tipo de prueba de integración). Creo que la prueba de humo es suficiente prueba de integración. Si lo piensas: ¿por qué el módulo se preocupa por lo que hace otro módulo? (Deja que cada parte haga lo que quiera, pero solo importa cómo comunicarse con ellos)
Personalmente, creo que llamar objetos de un módulo distribuido a otro en los métodos de prueba, no es una buena práctica. Sí, eso sería una prueba de integración, pero creo que es muy fácil de usar.
Siempre tenga en cuenta la pirámide de las pruebas, recuerde que las pruebas de integración y las pruebas de extremo a extremo pueden ser muy costosas. Así que elige sabiamente cuándo usarlos:
que viene del mundo de Java, este siguiente es sólo un poco de información extra que creo que también está relacionado con el tema y puedan ser de su interés:
- El patrón Data Transfer Object, es interesante
- RMI vs EJB vs HTTP (Algunos interesante comentario sobre las diferencias entre las tecnologías de la invocación remota)
- Spock un marco BDD para desarrolladores Java. (Si comprende perfectamente las reglas comerciales, entonces las pruebas son más fáciles)
Espero que lo encuentre útil.
¿Qué tipos de pruebas le gustaría ejecutar? es decir, ¿qué intentas afirmar? Los objetos se serializan correctamente? Los mensajes a través del sistema distribuido se reciben y procesan correctamente? Los mensajes se ejecutarán a través del sistema en un cierto orden? ¿Le preocupan las pruebas de carga? –
@EricLaForce: es necesario que el sistema funcione correctamente, por lo que todo lo anterior se aplica. – Fanatic23