Ich folge TDD religiös. Meine Projekte haben in der Regel eine Testabdeckung von mindestens 85% mit aussagekräftigen Testfällen.
Ich arbeite viel mit HBase , und die Haupt-Client-Oberfläche, HTable, ist ein echtes Problem. Das Schreiben meiner Komponententests dauert drei- oder viermal länger als das Schreiben von Tests, die einen Live-Endpunkt verwenden.
Ich weiß, dass Tests, die Mocks verwenden, aus philosophischer Sicht Vorrang vor Tests haben sollten, die einen Live-Endpunkt verwenden. Aber das Verspotten von HTable ist ein schwerwiegender Schmerz, und ich bin mir nicht sicher, ob es einen großen Vorteil gegenüber dem Testen mit einer Live-HBase-Instanz bietet.
Jeder in meinem Team führt eine Einzelknoten-HBase-Instanz auf seiner Workstation aus, und auf unseren Jenkins-Boxen werden Einzelknoten-HBase-Instanzen ausgeführt, sodass es nicht auf die Verfügbarkeit ankommt. Die Live-Endpunkttests dauern offensichtlich länger als die Tests, die Mocks verwenden, aber das interessiert uns nicht wirklich.
Im Moment schreibe ich Live-Endpunkttests UND mockbasierte Tests für alle meine Klassen. Ich würde gerne die Mocks fallen lassen, aber ich möchte nicht, dass die Qualität infolgedessen abnimmt.
Was denkst du alle?