TDD, DDD und Encapsulation

Nach einigen Jahren, in denen ich der schlechten Praxis der „Architekten“ an meinem Arbeitsplatz gefolgt bin und nachgedacht habe, dass es einen besseren Weg geben muss, habe ich mich in letzter Zeit mit TDD und DDD befasst und denke, die Prinzipien und Praktiken wären ein passt gut zu der Komplexität der Software, die wir schreiben.

Viele der TDD-Beispiele, die ich gesehen habe, rufen jedoch eine Methode für das Domänenobjekt auf und testen dann die Eigenschaften des Objekts, um sicherzustellen, dass das Verhalten korrekt ausgeführt wird.

Auf der anderen Seite befürworten mehrere angesehene Leute in der Branche (Greg Young am deutlichsten bei seinen Gesprächen über CQRS), jedes Domain-Objekt vollständig einzukapseln, indem alle "Getter" entfernt werden.

Meine Frage lautet daher: Wie testet man die Funktionalität eines Domänenobjekts, wenn es verboten ist, seinen Status abzurufen?

Ich glaube, ich vermisse etwas Grundlegendes, also zögern Sie nicht, mich einen Idioten zu nennen und mich aufzuklären - jede Anleitung wäre sehr dankbar.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage