In questa situazione (presupponendo un servizio web di terze parti), non scrivo il test che effettivamente ottiene il servizio per restituire una risposta a velocità limitata. Invece, ho un test che verifica il comportamento previsto quando si riceve la risposta .
Salva una risposta di limitazione della velocità dal servizio e rispedisci quella risposta anziché chiamare il servizio web effettivo. Non solo il test viene eseguito molto più velocemente, ma può anche essere eseguito offline e probabilmente porterà a una migliore progettazione del codice.
Nel codice pseudo Java / Mockito-ish sembrerebbe qualcosa di simile:
// pretend we are rate limited
when(client.callService()).thenReturn(RATE_LIMITED_RESPONSE);
// call the service
response = getResponse(client);
// decision based on rate limited response is correct
assertEquals(Status.RATE_LIMITED, response.getStatus());
dove getResponse()
chiama client.callService()
e successivamente gestisce tutta la logica basata sul contenuto della risposta.
Se hai già un test come questo, allora il test di integrazione sta solo testando che il servizio web restituisce una risposta a velocità limitata in un formato che ti aspetti.