Ich habe jemanden sagen hören, dass Einheitstests (z.B. nUnit, jUnit, xUnit) sein sollten
(z. B. sollten Einheitstests "feuchten Code" und nicht "trockenen Code" enthalten)
Wovon reden sie?
DAMP steht für "descriptive and meaningful phrases" (beschreibende und sinnvolle Sätze) und ist das Gegenteil von DRY, nicht in dem Sinne, dass es heißt "alles sollte wie ein Müllhaufen aussehen und unmöglich zu lesen sein", sondern dass die Lesbarkeit wichtiger ist als die Vermeidung von redundantem Code.
Ich stimme mit Chris Edwards überein, dass man ein Gleichgewicht zwischen beiden finden muss. Eine weitere Sache, die man beachten sollte, ist, dass wenn man in dem Versuch, Duplikationen zu entfernen, eine Menge zusätzlicher Strukturen in den Code der Unit-Tests einfügt (d.h. wenn man DRY bis zum Äußersten treibt), das Risiko besteht, dass man dort Fehler einführt. In einer solchen Situation müssten Sie entweder Ihre Unit-Tests testen oder Teile der Struktur ungetestet lassen.
Ich möchte den Aufwand hier nicht verdoppeln, aber man kann Tests haben, die DAMP sind, aber den Vorteil von DRY haben. Umgekehrt genügen DRY-Tests in manchen Fällen nicht den DAMP-Tests.
Ich habe einen Blog über DRY vs. DAMP geschrieben, der einige Beispiele enthält.
Keiner der beiden Ansätze sollte die einzige Lösung sein. Manchmal ist DAMP ein Overkill, ein anderes Mal eine sehr gute Ergänzung.
In der Regel sollten Sie die Dreierregel anwenden. Wenn Sie ein drittes Mal eine Duplikation entdecken, kann es sich lohnen, DAMP-ähnliche Tests zu schreiben, aber selbst dann nicht jede Vervielfältigung ist schlecht . Der Kontext ist wichtig.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.