Тимур · бэкенд, #qa-antrakt
Новость: перекладываем бэкенд по фичам. Вместо
controllers/,services/,repositories/будут папкиbuy_tickets/,list_events/,refund/, в каждой всё от ручки до SQL. Сервисов и репозиториев как слоёв больше не будет. Ваши 140 тестов наOrderServiceс мокомOrderRepositoryпосле этого, видимо, в мусор?
Вера Ланская · лид QA, #qa-antrakt
Не в мусор, а на переезд. Выбери границы тестов для трёх первых слайсов: афиша, покупка, возврат. Что тестируем целиком, что юнитами, что фейками. И посчитай, сколько из 140 тестов проверяли поведение, а сколько то, что сервис позвал репозиторий.
В прошлом уроке ты резал одну функцию: решение в ядро, действия в оболочку. Сегодня посмотрим шире, на то, как разложен весь код. От этого зависит, где проходит граница теста, а значит, что в тесте настоящее и что подменено.
Слово «вертикальный срез» ты мог встретить в курсе архитектуры, в уроке «Вертикальные и горизонтальные срезы». Там оно про то, как резать работу над фичей на поставки: каждый кусок проходит через все слои и сразу работает. Здесь то же слово про то, как разложен готовый код. Идея родственная: и там и там режут поперёк слоёв.
Наборы для ужина
Ресторан может готовить по цехам. Холодный цех режет все салаты, горячий жарит всё мясо, кондитерский печёт все десерты. Повар каждого цеха знает свой участок, а целое блюдо видит только официант на раздаче.
Сервис доставки наборов для ужина устроен иначе. В коробке «паста карбонара» лежит всё для одного блюда: макароны, бекон, яйца, сыр и карточка рецепта. Хочешь проверить набор, приготовь блюдо по карточке и попробуй. Проверять отдельно, правильно ли холодный цех передал бекон горячему, незачем: цехов нет.
Слоистый код это ресторан с цехами. Вертикальные слайсы это коробки с наборами. И проверка у них разная.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.