Perdimos mucho tiempo en nuestra última prueba de integración en un error que creo que debería haberse encontrado en las pruebas unitarias. El problema fue que una interfaz / servicio que llamamos se comportó de manera diferente de lo que esperábamos y la prueba unitaria no encontró este problema porque nos burlamos de esa interfaz para la prueba unitaria y nuestra simulación se basó en nuestra interpretación errónea de lo que la interfaz haría hacer. Ahora podría estar un poco enojado con nuestro querido compañero de trabajo que proporcionó la interfaz, porque su descripción / especificación (un breve comentario de JavaDoc) fue ambigua y contribuyó a nuestro malentendido. Por otro lado, pensé que el problema podría haberse evitado si esos mismos compañeros de trabajo hubieran proporcionado una implementación simulada de su interfaz que podríamos llamar en nuestras pruebas unitarias.
Ahora, ¿cuál es la mejor práctica para organizar la creación de objetos simulados entre los equipos que proporcionan y usan interfaces compartidas? Cuales son tus experiencias