Sigo TDD religiosamente. Mis proyectos suelen tener una cobertura de prueba del 85% o mejor, con casos de prueba significativos.
Trabajo mucho con HBase , y la interfaz principal del cliente, HTable, es muy difícil de burlar. Me toma 3 o 4 veces más tiempo escribir mis pruebas unitarias que escribir pruebas que usan un punto final en vivo.
Sé que, filosóficamente, las pruebas que usan simulacros deben tener prioridad sobre las pruebas que usan un punto final en vivo. Pero burlarse de HTable es un dolor grave, y no estoy realmente seguro de que ofrezca una gran ventaja sobre las pruebas contra una instancia de HBase en vivo.
Todos en mi equipo ejecutan una instancia de HBase de un solo nodo en su estación de trabajo, y tenemos instancias de HBase de un solo nodo ejecutándose en nuestros cuadros de Jenkins, por lo que no es un problema de disponibilidad. Las pruebas de punto final en vivo obviamente tardan más en ejecutarse que las pruebas que usan simulacros, pero realmente no nos importa.
En este momento, escribo pruebas de punto final en vivo y pruebas simuladas para todas mis clases. Me encantaría deshacerme de los simulacros, pero no quiero que la calidad disminuya como resultado.
¿Qué piensan todos ustedes?