mashletov
@mashletov
Программист

Как писать тесты?

До сих пор не могу начать писать тесты для веб-проектов, так как не знаю за что ухватиться. Статьи, которые я нашел, описывают сферических коней в вакууме, типа assert(2+2,4).
Допустим, есть типичный сайт на laravel / yii. Несколько моделей: User, Product, Category, Order. Соответствующие контроллеры и вьюшки. С чего начать?
  1. Юнит-тестирование. Совсем не понимаю, что можно проверять, чтобы было полезно, а не тесты ради тестов? Модели/контроллеры или только те файлы, где есть бизнес-логика? Что именно нужно проверять? Сохраняется ли модель в бд? Не возникает ли исключение в action в цикле с рандомными параметрами?
  2. Функц. тестирование. Тут я придумал только обход важных страниц и проверка их на отсутвствие 4xx/5xx ошибок. Что может быть еще?
  • Вопрос задан
  • 4416 просмотров
Решения вопроса 5
@lxsmkv
Test automation developer
Тесты нужны для автоматического получения информации о состоянии продукта. Если у вас нет вопросов, т.е. вы во всем уверены, то и тесты как бы не нужны (ирония). Вы ведь каждый день перед тем как сесть за руль смотрите не сдулись ли колеса? Смотрите на уровень бензина. Слушаете как работает мотор на холостом ходу. Проверять работают ли светофоры не нужно, вы на них не можете повлиять. Проверять есть ли пробки на дорогах нет смысла, вы на них не можете повлиять. А вот состояние вашего автомобиля, да. Так же и с ПО. А с чего начать - логично, с самых критичных вещей. Чем виднее и центральнее функция, тем важнее ее покрыть тестами.
Ответ написан
AlexMaxTM
@AlexMaxTM
Для начала можно посмотреть это видео
https://www.youtube.com/watch?time_continue=1&v=gR...
для Yii2
много вопросов изчезнет
Ответ написан
@ivorobioff
Senior Web Developer
В функциональных тестах тестируй бизнес логику (с точки зрения пользователя приложения), валидацию, и все подобное. Юнит тесты пиши для сложной логики, либ и бизнес логики которая не покрывается функциональными тестами. Функциональными тестами иногда тяжело или мучительно покрыть все вариации бизнес логики, в таких случаях можно это сделать в юнит тестах.
Ответ написан
@takoi_nikneim_uzhe_zanyat
Тесты очень удобно например на этапе написания логики. Есть упражнения по PHP exercism.io. Там можно прощупать силу и пользу PHPUNIT.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
jkd
@jkd
1)Если не можешь не пиши. Значит еще не нужно...
Начинают писать, или когда проект действительно большой, и сложно отследить, что и как падает в результате твоих модификаций. Или когда над проектом работают несколько человек и нужно контролировать целостность проекта.
2)Просто прочитай и пока забудь. Когда понадобится - ты просто почувствуешь это. Что нужно написать для контроля какого-то места. Возникнет потребность, а на вопрос как ты уже примерно будешь знать ответ.
3)В любом случае это дополнительные накладные расходы на проект. И если тестирование не решает каких-то задач - то в нем смысла нет...

Тестирование ради тестирования - потеря времени.. Укрупняй проект.. И как то ты проснешься и поймешь, что без него нельзя. И задачи у тебя будет конкретные.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы