Задать вопрос
fl3xice
@fl3xice
Люблю что-то придумывать

Для чего нужны тесты в php?

Для чего нужны тесты PHP (PHP Unit Test)

Я везде слышу "желательно делать тесты" или "тесты необходимо делать"
Но какой от них смысл и вообще как они взаимодействуют с кодом в прицепе.

Я не новичок в php но в моих проектах я ни разу не юзал тесты но не хотелось бы оставаться в дураках.
  • Вопрос задан
  • 173 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Вообще это очень обширная тема, в которую стоит погрузиться. Прежде всего нужно понимать, что помимо Unit тестов есть ещё и другие тесты.

Unit тесты нужны для тестирования кода-бизнес логики. Они выполняются быстро, не лезут в базу и в целом гарантируют вам что бизнес логика соответствует вашим требованиям, что методы класса возвращают то, что от них ждут.

В целом - это позволяет вам гарантировать, что ваш код работает ожидаемо, даже когда вы внедрили новую фичу. Всё работает без ошибок. Если вы не используете тесты - вам придётся надеются на Бога или проверять все самому)))

Использование тестов оправдывается на большом и долгосрочном проекте, а так как большинство проектов растут, то желательно Unit тесты писать всегда. Даже когда лень) Это вам поможет в будущем. По тестам можно понять как всё работает.

Так же тесты можно запускать командой, но можно и настроить автоматический деплой на сервер (CI CD). Например, вы запаливаете новую фичу пушите её на гитхаб. Там запускается сборка и тестирование. Если тестирование прошло автоматически - то ваш проект (с новой фичей) выкладывается на продакшн. А если есть ошибка - все прерывается.

Как и сказал выше - это обширная тема, в которую стоит погрузиться!)

Вот пример тестов одного из модуля. Можете посмотреть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
fo_otman
@fo_otman
Веб-разработчик
В моей практике unit-тесты как-то не понадобились. Зато очень нужны приемочные автотесты на Codeception и движке WebBrowser. Суть проста: автотест запускает браузер, эмулирует действия пользователя, сверяет результат с тем, что должно быть. Например, автотест проходит по всему каталогу и проверяет каждый товар. А их тысячи! Вручную тестировщик проверил бы 5-10 товаров и забил нафиг на это дело.
Ответ написан
Комментировать
@Nolan81
программист
> Но какой от них смысл и вообще как они взаимодействуют с кодом в прицепе

По TDD тесты пишутся первыми, а потом уже пишется код, который эти тесты пройдет.
Т.е. тесты задают вам архитектуру. Вам сложнее будет написать плохой код, т.к. под плохой код тесты писать муторно.
Ну и естественно наличие тестов - это просто как гарантия того что ваш код рабочий.
И также появляется возможность рефакторинга, всегда можно переделать, т.к. есть тесты, по которым можно проверить что ничего не сломалось после изменений
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы