Продолжение.
Я слишком часто видел сьюты (и даже сам писал когда-то такие), где были только юнит-тесты, которые тестировали код, замоканных со всех сторон классов. Значит ли полностью зелёный сьют при 100% покрытии, что система выполняет весь необходимый функционал? Да что она вообще хотя бы поднимется в проме? Нет.
Тесты должны проверять именно то, что важно: не код компонента, а поведение системы. Не в моках, а в максимально приближённых к прому условиях. У вас должны быть функциональные тесты, взаимодействующие с отдельно поднятым приложением. Иначе ваш сьют не даёт полной уверенности и начинай с начала.
Можно ли выкарабкаться, если все тесты на моках, но вы осознали свою ошибку? Да, но заметная часть сьюта подлежит переписыванию. Это обычно очень много работы.
Итог.
Это 4 основных пункта, накосячив в которых, вы, скорее всего, выстрелили себе в ногу. Если хотя бы одно не выполнено, то не видать вам полного автотестирования ещё очень-очень долго.
И есть ещё целый список таких же пунктов, но уже со звёздочкой, где цена ошибки будет хоть и не так высока, но все равно не позволит вашему набору тестов выполнять свою задачу.
И, наверное, скорее рано, чем поздно, я опишу подход к автотестам, который мы используем в своей команде, где мы разберём основные препятствия к построению нормального сьюта.
Post #15
966
- 🔥 16
- ❤ 1