TGViewer
ITKatya: культурные паттерны в IT ITKatya: культурные паттерны в IT @valuegoalsddd · 1.77K subscribers
Post #645 419
🧪 Тесты при DDD — инструмент контроля поведения.

1. Тестируется поведение, а не реализация
Мы не проверяем, что метод вернул массив из 4 элементов.
Мы проверяем, что при таких входных данных InvoiceLimitPolicy запрещает оплату.
Это называется specification by example — описание бизнес-логики через конкретные кейсы.


2. Тест в связке с бизнес-языком
Тест test_cannot_exceed_limit_for_vip_clients читается без перевода.
Никаких «тестируем что метод х вызвал метод у». Мы проверяем бизнес-правила, а не детали реализации.

3. Плюсы:
✅ Повышается устойчивость к изменениям — вы можете менять реализацию, пока поведение не ломается.
✅ Тесты = документация. Для нового разработчика часто тест — первый вход в контекст.
✅ Бизнес понимает, о чем речь, а еще им можно «сплавить» проверку тестовых сценариев (и они их проверяют лучше команды разработки).

4. Минусы:
− Это требует времени и дисциплины. Легче протестировать функцию, чем поведение домена.
− Иногда сложно определить границы — а это уже вопрос к архитектуре.

5. Качество ≠ Тесты
Тестов может быть много, а система — неудобной, сложной, не отражающей суть бизнеса.
В DDD качество = насколько хорошо система отражает домен:
− насколько точно реализованы правила,
− насколько понятно поведение,
− насколько просто объяснить, что делает система.
И здесь тестирование — лишь один из инструментов обеспечения качества, наряду с ubiquitous language, совместным проектированием и проверками модели.

6. А при чем тут TDD?
TDD (Test-Driven Development) идеально сочетается с DDD:
− сначала описываешь поведение,
− потом реализуешь,
− потом рефакторишь, не боясь поломать.
Но важно: TDD — это не про «сперва написать тест», а про мышление через поведение.
DDD-тесты не про проверку кода, а про проверку бизнес-правды.
Когда пользователь говорит: «у нас нельзя так делать», а ты открываешь тест и видишь — да, нельзя. Или, наоборот, понимаешь, что это поведение вытекает из старой логики и требует пересмотра.

Завтра — финальный пост: пост-документация и ее смысл в DDD.
💬 А у вас тесты — это safety net или описание модели?

#architecture #ddd
  • 👍 6
  • ❤ 4
  • 🤓 1
More from @valuegoalsddd
  1. Aug 4, 2026Последние несколько дней читаю книгу про коллективную и личную вину, геройство и молчание…
  2. Jul 30, 2026Ладно, раз уж последние дни мы снова говорим про языки и нейминг, то хочу зайти немного с…
  3. Jul 29, 2026У кого какие романтические вечера или сцены из супружеской жизни 👩‍❤️‍👨 Легли вчера с му…
  4. Jul 29, 2026Нейминг — это не про красоту. Иногда это про очень дорогие баги. Один из моих любимых прим…
  5. Jul 26, 2026Ну а вот сами дизайны! И если вам лень лезть и голосовать или у вас нет возможности прогол…
  6. Jul 26, 2026Нуууууу... Возвращаться после затяжного отсутвия сложно, но попробую! Начнем с простой нов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →