TDD nervt

350 views
Skip to first unread message

naja

unread,
Dec 19, 2017, 12:29:08 PM12/19/17
to Clean Code Developer
Hallo zusammen,

okok der Betreff ist provozierend gewählt aber bei mir manchmal leider zutreffend.

Doch von vorne: TDD finde ich an sich ganz gut. Neuer code, Test jeweils zuerst, Mock injizieren. Zyklisch durch bis fertig. Soweit so gut.
Zwei Stories (oder Jahre) später - die Klasse wird so langsam etwas größer - kommt der Gedanke, wir könnten doch ein Teil auslagern. Gesagt getan - mit den richtigen Tools ist das in einer viertel Stunde am produktiven Code erledigt. Aber nun laufen die unit-tests nicht mehr. Der ausgelagerte Teil muss nun gemockt werden und seperat getested. Was kann man da vom ursprünglichen Test noch verwenden? Was muss neu gemacht werden? ...
So alles in allem - nach meiner Erfahrung gehen 5% der Zeit für den Produktivcode drauf und 95% für die Anpassung der Tests. Und das nervt ;-)

Was können wir da besser machen?
Könnte man solche Änderungen auch TDD machen?

Ralf Westphal

unread,
Dec 19, 2017, 12:36:13 PM12/19/17
to Clean Code Developer
Was du beschreibst, hat nur bedingt mit TDD zu tun.
Das Wurzelproblem liegt in dem, was du ganz natürlich findest: "Mock injizieren".
Du bist ein Opfer der funktionalen Abhängigkeiten, die mit SOLID nicht verschwinden, sondern nur hinter einem Feuerwerk an Interfaces und Mocks verborgen werden.

Wenn du mal aufhörst, funktionale Abhängigkeiten herzustellen, dann beruhigt sich das Bild.

Ich benutze seit Jahren keine Mock-Frameworks mehr und mocke nur selten. Aber ich sehe nicht, dass meine Software deshalb fehlerlastig ist.

Vergiss SOLID! Stattdessen: IOSP (Integration Operation Segregation Principle) und PoMO (Principle of Mutual Oblivion).

Wenn du sauber Integration von Operation als formale Verantwortlichkeiten trennst, löst du funktionale Abhängigkeiten auf. Logik, die du testen musst, ist nicht mehr abhängig von anderer, die du mocken müsstest. Voila!

ste...@lieser-online.de

unread,
Dec 19, 2017, 12:41:00 PM12/19/17
to clean-code...@googlegroups.com
Schau doch zum Einstieg mal in meinen Blog.
http://refactoring-legacy-code.net/testbarkeit-wieder-herstellen-das-iosp/

Es gibt dort auch ein Video zum IOSP.

Viele Grüße
Stefan Lieser
--
Clean Code Developer School
Saubere Softwareentwicklung üben
regelmäßig . fokussiert . individuell . angeleitet

Stefan Lieser & Ralf Westphal
Willi-Lauf-Allee 3
50858 Köln

www.ccd-school.de
--
Sie erhalten diese Nachricht, weil Sie in Google Groups E-Mails von der Gruppe "Clean Code Developer" abonniert haben.
Wenn Sie sich von dieser Gruppe abmelden und keine E-Mails mehr von dieser Gruppe erhalten möchten, senden Sie eine E-Mail an clean-code-devel...@googlegroups.com.
Wenn Sie in dieser Gruppe einen Beitrag posten möchten, senden Sie eine E-Mail an clean-code...@googlegroups.com.
Gruppe besuchen: https://groups.google.com/group/clean-code-developer
Weitere Optionen finden Sie unter https://groups.google.com/d/optout.

naja

unread,
May 31, 2018, 12:03:10 PM5/31/18
to Clean Code Developer
Hallo,
nach langer Zeit melde ich mich mal wieder. Danke für Eure Beiträge. Sie gingen nicht vergessen. Es gab zu demThema bei uns einige Diskussionen dazu. Außerdem möchte ich eine Cata dazu bei uns organisieren.


naja

unread,
May 21, 2019, 6:48:41 AM5/21/19
to Clean Code Developer
Hallo,
Danke für alle Eure Antworten. Ich habe die immer wieder mal gelesen.
Reply all
Reply to author
Forward
0 new messages