После нескольких лет следования за плохой практикой, вынесенной «архитекторами» на моем рабочем месте и думая, что должен быть лучший способ, я недавно начал изучать TDD и DDD и думаю, что принципы и практики было бы отлично подходит для сложности программного обеспечения, которое мы пишем.
Однако многие из примеров TDD, которые я видел, вызывают метод для объекта предметной области, а затем проверяют свойства объекта, чтобы убедиться, что поведение выполняется правильно.
С другой стороны, несколько уважаемых людей в отрасли (Грег Янг особенно заметно в своих выступлениях по CQRS) выступают за полную инкапсуляцию каждого предметного объекта путем удаления всех «получателей».
Поэтому мой вопрос таков: как проверить работоспособность объекта домена, если ему запрещено получать его состояние?
Я считаю, что упускаю что-то фундаментальное, поэтому, пожалуйста, не стесняйтесь называть меня идиотом и просветите меня - любое руководство будет с благодарностью.