Le decimos a los colaboradores qué responder a cada llamada
Comprobamos la respuesta del SUT
Comprobamos que las llamadas a los colaboradores son EXACTAMENTE las que esperamos
Así controlamos toda la entrada y salida del SUT para comprobar que su comportamiento desde el exterior es el correcto.
El SUT es el Subject Under Test que viene a ser la clase/funcion/loquesea que estemos testeando, son unas siglas muy guays que la peña de QA usa porque son profesionales. Aritz guapo.
Ejemplo en Payments API
EnsureStripeCustomerTest.java:70
En los tests con WireMock, normalmente...
Falseamos los colaboradores del SUT
Le decimos a los colaboradores qué responder a cada llamada
Comprobamos la respuesta del SUT
...
Y nos olvidamos de comprobar que las llamadas a los colaboradores han sido correctas
Pero podemos hacerlo y no es complicado aliñando un poco el cliente de WireMock en los tests.
Ejemplo en Payments API
PayPalTokenizationTest.java:142
No es todo color de rosas:
Hay que hacerse esas funciones extra que WireMock no incluye para asemejarlo en funcionalidad a Mockito
Que igual existen pero no pude encontrarlas porque el concepto "documentación" en el mundo Java es una puta broma de mal gusto :D
Es fácil mientras sepas exactamente cuando la operación que testeas ha finalizado.
Background jobs que se lanzan tras una petición HTTP? Mensajes a la Rabbit que se consumirán a saber cuando? Suerte :)