Comments 8
Хорошая статья. Особенно отлично описаны mock, stub, fake. Сколько видел сломанных копий на эту тему.
Для определения require и assert есть установившаяся в тестировании терминология: soft assert - проверяет результат и разрешает продолжение теста, hard assert проверяет результат и останавливает тест в случае фейла.
Спасибо, согласен - часто тоже такое встречаю. Но потом, когда команда поймет, сэкономит много времени.
Присоединяюсь, довольно приятно описана база. Можно использовать как обучение и для начинающих Go-разработчиков, и для новоприбывших из других языков/технологий.
К сожалению, часто, разработчик приходит к пониманию, что от тестов только плюсы, не сразу и только через собственный опыт.
На верхнем уровне — end‑to‑end тесты...
Нужны они не всегда, но очень пригодятся, когда важна не только внутренняя логика, но и то, как выглядит система «снаружи».
Ваши слова да всем бы в уши. В реальности пирамида часто перевёрнутая, или какая‑то ещё. И e2e нужны в не малом количестве. Иногда речь не только про "как выглядит", но и про то что на фронте могут быть "зашиты" бизнес процессы.
Эх, хорошо когда разработчики пишут юнит‑тесты... =) Здоровая практика, когда все уровни покрываются. Разработка пишет юнит‑тесты, а тестирование — e2e. Интеграционные — можно договориться как поделить ответственность.
Даже осознавая важность автотестов, легко попасть в ловушку их неудачного исполнения. Проблема редко заключается в самих тестах: чаще всего причина в том, как они написаны.
Вы абсолютно правы. Разрабатываемые автотесты, так или иначе, должны проверяться. Будь то юниты или интеграционные, или e2e.
Правда при покрытии нижней части пирамиды лучше же выбирать тот же язык, на котором написано само приложение. Вы так же поступили?
Go-тесты: путь к надежному коду