Abbiamo sprecato un sacco di tempo nel nostro ultimo test di integrazione su un bug che credo avrebbe dovuto essere trovato nei test unitari. Il problema era che un'interfaccia / servizio che chiamavamo si comportava in modo diverso da quello che ci aspettavamo e il test di unità non ha riscontrato questo problema perché abbiamo deriso quell'interfaccia per il test dell'unità e il nostro simulato era ovviamente basato sulla nostra errata interpretazione di ciò che l'interfaccia avrebbe fare. Ora potrei essere un po 'arrabbiato con il nostro caro collega che ha fornito l'interfaccia, perché la loro descrizione / specifica di esso (un commento tetra JavaDoc) era ambigua e ha contribuito al nostro fraintendimento. D'altra parte, ho pensato che il problema avrebbe potuto essere evitato se quegli stessi colleghi avessero fornito un'implementazione finta della loro interfaccia che potremmo chiamare nei nostri test unitari. Quindi il bug sarebbe apparso molto prima e si sarebbe potuto evitare parolacce.
Ora, qual è la migliore pratica nell'organizzazione della creazione di oggetti mock tra i team che forniscono e utilizzano le interfacce condivise? Quali sono le tue esperienze?