TDD、DDD、カプセル化 質問する

TDD、DDD、カプセル化 質問する

職場の「アーキテクト」から受け継がれた悪い習慣を何年も続け、もっと良い方法があるはずだと考えていましたが、最近 TDD と DDD について調べていて、その原則と実践は私たちが作成するソフトウェアの複雑さに非常に適していると思いました。

しかし、私が見た TDD サンプルの多くは、ドメイン オブジェクトのメソッドを呼び出し、オブジェクトのプロパティをテストして、動作が正しく実行されたことを確認しています。

一方、業界で尊敬されている何人かの人々 (CQRS に関する講演で最も有名な Greg Young) は、すべての「ゲッター」を削除して各ドメイン オブジェクトを完全にカプセル化することを提唱しています。

したがって、私の質問は次のようになります。ドメイン オブジェクトの状態を取得することが禁止されている場合、そのオブジェクトの機能をどのようにテストすればよいのでしょうか。

私は何か根本的なことを見逃していると思うので、遠慮なく私をバカと呼んで啓蒙してください。どんなご指導でも大歓迎です。

ベストアンサー1

あなたが説明しているのは状態検証ドメインオブジェクトの状態をアサートします。TDDには、行動検証Mock オブジェクトを活用します。

動作検証を使用すると、どのメソッドを呼び出す必要があるか、また必要に応じてどのメソッドを呼び出さないかを指定できます。

詳細については、Martin Fowler によるこの記事をご覧ください。モックはスタブではない

おすすめ記事