Зачем мне нужны юнит тесты?
Как я уже говорил, у UI тестов есть плюсы:
- Их легче писать.
- Они быстрее дают обратную связь.
- они документируют пользовательские сценарии
Но есть и минусы:
- в 90% случаев UI тестами покрывается только 1 успешный кейс и забывается про кучу корнеркейсов. Для всех их дорого писать и они будут очень долго выполняться.
- они детектят только факт падения, но не дают причины
- Не знают о деталях работы сервисов, холдеров и тп за рамками UI
В итоге получается, что мы просто экономим на ручном тесте с сообщением "иди посмотри у тебя тест упал".
Как мне помогают юнит тесты? Сейчас я сделал фичу, которая выйдет в релиз в марте 2023 года. За 6 месяцев мне нужно как-то убедиться, что фича не упадет на проде и доедет в рабочем состоянии. Да, UI тесты и мок-данные могут обезопасить и как-то сэкономить время на детект.
Но когда мне придет факт о сломанном проде мне нужно время, чтобы освежить память и найти ответы на вопрос "А что я делал пол года назад и как это должно быть в 9 из 10 других случаях, которые не покрыли UI тесты?".
Я бы мог задокументировать и описать в каком-нибудь конфлюенсе, но есть риск, что он устареет. Поэтому, на уровне атомов, юнит тесты могут мне быстрее погрузиться в детали актуального прода.
Также они не дадут накопиться снежному кому недоработок, которые будут появляться из-за аффекта зависимых сервисов.
Как я уже говорил, у UI тестов есть плюсы:
- Их легче писать.
- Они быстрее дают обратную связь.
- они документируют пользовательские сценарии
Но есть и минусы:
- в 90% случаев UI тестами покрывается только 1 успешный кейс и забывается про кучу корнеркейсов. Для всех их дорого писать и они будут очень долго выполняться.
- они детектят только факт падения, но не дают причины
- Не знают о деталях работы сервисов, холдеров и тп за рамками UI
В итоге получается, что мы просто экономим на ручном тесте с сообщением "иди посмотри у тебя тест упал".
Как мне помогают юнит тесты? Сейчас я сделал фичу, которая выйдет в релиз в марте 2023 года. За 6 месяцев мне нужно как-то убедиться, что фича не упадет на проде и доедет в рабочем состоянии. Да, UI тесты и мок-данные могут обезопасить и как-то сэкономить время на детект.
Но когда мне придет факт о сломанном проде мне нужно время, чтобы освежить память и найти ответы на вопрос "А что я делал пол года назад и как это должно быть в 9 из 10 других случаях, которые не покрыли UI тесты?".
Я бы мог задокументировать и описать в каком-нибудь конфлюенсе, но есть риск, что он устареет. Поэтому, на уровне атомов, юнит тесты могут мне быстрее погрузиться в детали актуального прода.
Также они не дадут накопиться снежному кому недоработок, которые будут появляться из-за аффекта зависимых сервисов.