Usiamo simulazioni per garantire che un test unitario sia eseguito solo contro il codice che dovrebbe essere testato. Ciò impedisce che un errore in un modulo A causi il fallimento di test di un modulo dipendente B. Tuttavia, ora dobbiamo anche testare l'interazione in modo esplicito. Non è sufficiente che A e B siano di per sé verdi, A deve funzionare come B lo prevede, e B deve avere le giuste aspettative.
Ora, le aspettative di B sono già formalmente definite: nei mock e negli stub. Se ho uno stub in cui A restituisce determinati output per determinati input, ciò significa che mi aspetto che sia possibile avere A in uno stato in cui mostra questo comportamento.
Quindi, invece di scrivere lunghi test di integrazione, devo solo impostare un A e testarlo contro gli stub e i mock che ci sono già. Oppure, per capovolgerlo, posso usare un'istanza reale di A per verificare la correttezza dei miei mock.
Funziona in pratica? Esistono best practice (ad esempio, a chi appartengono questi test di pseudo-integrazione, se la suite di test di A fornisse già alcuni mock che potrebbero essere usati)? Questo è possibile anche con i famosi framework di simulazione?