Seguo religiosamente TDD. I miei progetti hanno in genere una copertura del test dell'85% o superiore, con casi di test significativi.
Lavoro molto con HBase , e l'interfaccia client principale, HTable, è un vero e proprio dolore da prendere in giro. Mi bastano 3 o 4 volte più a lungo per scrivere i miei test unitari di quanto non faccia per scrivere test che utilizzano un endpoint live.
So che, filosoficamente, i test che usano i mock dovrebbero avere la priorità sui test che usano un endpoint live. Ma il mocking HTable è un dolore serio, e non lo sono davvero certo offre molto vantaggio rispetto ai test su un'istanza HBase live.
Tutti i membri del mio team eseguono un'istanza HBase single-node sulla loro workstation e abbiamo istanze HBase a nodo singolo in esecuzione sulle nostre scatole Jenkins, quindi non è un problema di disponibilità. I test degli endpoint live impiegano ovviamente più tempo per essere eseguiti rispetto ai test che usano i mock, ma non ci interessa molto.
In questo momento, scrivo test di endpoint in tempo reale e test basati su mock per tutte le mie classi. Mi piacerebbe mollare i mock, ma non voglio che la qualità diminuisca di conseguenza.
Che cosa ne pensi?