Ich habe Unit-Tests nie gemocht. Ich dachte immer, es würde meinen Arbeitsaufwand erhöhen.
Es stellt sich heraus, dass dies nur in Bezug auf die tatsächliche Anzahl der von Ihnen geschriebenen Codezeilen zutrifft. Darüber hinaus wird dies vollständig durch die Zunahme der Anzahl nützlicher Codezeilen ausgeglichen, die Sie mit Tests und testgetriebener Entwicklung in einer Stunde schreiben können.
Jetzt liebe ich Unit-Tests, da sie mir erlauben, nützlichen Code zu schreiben, der ziemlich oft beim ersten Mal funktioniert! (auf Holz klopfen)
Ich habe festgestellt, dass Menschen nur ungern Unit-Tests durchführen oder ein Projekt mit testgetriebener Entwicklung starten, wenn sie sich unter strengen Zeitplänen befinden oder in einer Umgebung, in der andere dies nicht tun, also nicht. Ein bisschen wie eine kulturelle Weigerung, es überhaupt zu versuchen.
Ich denke, eines der mächtigsten Dinge beim Testen von Einheiten ist das Vertrauen, das Sie erhalten, um Refactoring durchzuführen. Es gibt auch neue Hoffnung, dass ich meinen Code jemand anderem geben kann, um ihn zu überarbeiten / zu verbessern, und wenn meine Komponententests immer noch funktionieren, kann ich die neue Version der Bibliothek, die sie geändert haben, so ziemlich ohne Angst verwenden.
Es ist dieser letzte Aspekt des Unit-Tests, der meiner Meinung nach einen neuen Namen braucht. Der Unit-Test ist eher ein Vertrag darüber, was dieser Code jetzt und in Zukunft tun soll.
Wenn ich das Wort Testen höre, denke ich an Mäuse in Käfigen, an denen mehrere Experimente durchgeführt wurden, um die Wirksamkeit einer Verbindung festzustellen. Dies ist nicht das, was Unit-Tests sind. Wir probieren keinen anderen Code aus, um herauszufinden, was der effektivste Ansatz ist. Wir definieren, welche Ausgaben wir mit welchen Eingaben erwarten. Im Beispiel der Mäuse ähneln Unit-Tests eher den Definitionen der Funktionsweise des Universums als den an den Mäusen durchgeführten Experimenten.
Bin ich auf dem Sprung oder sieht jemand diese Weigerung, Tests durchzuführen, und glaubt er, dass dies ein ähnlicher Grund ist, warum er es nicht tun möchte?
Welche Gründe geben Sie / andere an, nicht zu testen?
Was denkst du, sind ihre Motive darin, keine Unit-Tests durchzuführen?
Und als neuer Name für Unit-Tests, die einige der Einwände überwinden könnten, wie wäre es mit jContract? (Ein bisschen Java-zentriert, wie ich weiß :) oder Unit Contracts?