Re[18]: Что такое Dependency Rejection
От: Буравчик Россия  
Дата: 20.12.23 16:29
Оценка:
Здравствуйте, Pauel, Вы писали:

P>Если дизайн именно такой, и надо вдруг покрыть это тестами, то вариантов не много

P>1. интеграционные тесты с какой то базой
P>2. разного сорта моки

Что значит дизайн такой? Это логика приложения такая, как ее по другому задизайнить?

P>для п.2 для разработчиков очень трудно не скатиться в тавтологические тесты вида "метод вызывает другой метод"


С моками можно по-разному тестировать. Правильно — в моках возвращаемое значение фиксировать, а не тестировать факт вызовы.
Хотя в некоторых случаях и факт вызова тоже может быть важен

P>Это ничего не меняет — вашем дизайне вариантов нету, и наличие ветвлений их не увеличит.


Не понял, что понимается под вариантами. И почему ветвления не влияют.

P>Проблема в самих зависимостях, их много, и в том, что ваш дизайн мутабельный

P>Попробуйте отказаться от мутабельного дизайна. Как минимум, три эффекта из четырех легко отделяются. Так что можно упростить до безобразия.

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

С моками (стабами) я понимаю как это сделать — сайд-эффекты выделяются в интерфейсы (repo, external_service), мокаются, и далее вся логика проверяется как обычный юнит-тест.
Best regards, Буравчик
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.