@P747

В чем смысл юнит-тестов?

Добрый день!

Признаюсь честно, никогда их не писал, прочитал только статьи. Не понимаю зачем нужны юнит-тесты, если весь код все равно тестируешь вручную. Можно же обойтись просто обойтись трассировкой, строгой типизацией, отловом исключений, "var_dump" этого за глаза хватит. Я понимаю если бы это все делал исскуственный интеллект
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
Kozack
@Kozack
Thinking about a11y
Вот сегодня вы написали один класный модуль. Вручную его оттестировали и всё хорошо.
Через пол года вы пишете другой модуль который как-то косвенно влияет на первый. Первый модуль сломался.
Если приложение большое то физически невозможно каждый раз проверять его работоспособность от и до. А Юнит тесты помогают гарантировать что каждый отдельный модуль ведет себя предсказуемо в непредсказуемых ситуациях.

UPD
Пример попроще из своего опыта:
Писал систему которая анализирует последние действия пользователя и формирует для него рекомендации.
Есть входящий набор данных. Смотря на него, разработчик легко определяет какие рекомендации должны быть на выходе.
Пишется алгоритм который эти рекомендации формирует. Алгоритм большой и сложный.
Пишется несколько простых тестов, которые просто проверяют что при заданном наборе входных параметров итоговый результат тот, который ожидался.
Позднее, этот алгоритм можно сколько угодно переделывать и оптимизировать: у вас есть автоматизированная система, которая проверяет не столько "работоспособность" сколько "релевантность" выходного результата.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@jazzus
Я как фанат тестов, считаю своим долгом здесь отметиться. Скажу так. Покрывать тестами существующий функционал унылый отстой)) Скучная рутина. Я юзаю тесты исключительно в режиме TDD. Пишу перед разрабткой. И данный способ рекомендую. И в последнюю очередь ради тестирования. Тесты это самое лучшее тз, на котором не схалтуришь. Ты сам себе в тестах ставишь сложную задачу, описываешь результат и тестам пофигу как ты его добьешься. Сам процесс разработки становится горазо более интересным. Я вообще вначале пишу тесты на бумаге ручкой)) Ну не сами асерты естественно, а такое оглавление из задач. затем уже код. И когда фича написана в тестах только потом приступаю к разработке (про фронт даже в мыслях нет). Просто запускаешь тесты и пишешь код пока они не станут зелеными. Пишешь легко, быстро и со свободной головой. Ну то что тесты будут тестировать твой код в будущем, что ты можешь небоясь кардинально рефакторить логику и даже архитектуру это понятно. И то, что это самая актуальная документация. Это попса. Короче, я как тесты попробовал, ни одну фичу без тестов не писал. Даже непонятно с чего начинать писать код, если тестов нет. Роуты писать или кнопку.. Ужас. Короче рекомендую, как один из самых важных процессов в программировании. Писать тесты после функционала не рекомендую - очень скучно, не эффективно, скорее всего потеряется интерес и забьешь. Только tdd
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы