TDD, DDD и инкапсуляция

После нескольких лет следования за плохой практикой, вынесенной «архитекторами»; на моем рабочем месте и думая, что должен быть лучший путь, я недавно читал о TDD и DDD, и я думаю, что принципы и методы отлично подошли бы для сложности программного обеспечения, которое мы пишем.

Однако многие из примеров TDD, которые я видел, вызывают метод объекта предметной области и затем проверяют свойства объекта, чтобы убедиться, что поведение выполняется правильно.

С другой стороны, несколько уважаемых людей в отрасли (Грег Янг особенно заметно в своих выступлениях по CQRS) выступают за полную инкапсуляцию каждого доменного объекта путем удаления всех «получателей».

Поэтому у меня такой вопрос: как проверить работоспособность объекта домена, если ему запрещено получать его состояние?

Я считаю, что я упускаю что-то фундаментальное, поэтому, пожалуйста, не стесняйтесь называть меня идиотом и просветите меня - любое руководство будет с благодарностью.

Ответы на вопрос(8)

Ваш ответ на вопрос