Как тестировать Laravel?
Вставка
- Опубліковано 7 гру 2019
- Тестировать свой проект на базе фреймворка Laravel (и не только) это очень важно, но чтобы делать это правильно и качественно нужно понимать как настраивать окружение таким образом, чтобы тестирование работало корректно, для чего тот или иной вид тестов существует, ну и в конце концов как писать тесты? Об этих и некоторых других вопросах я расскажу в данном видео.
Официальная документация о тестировании Laravel
laravel.com/docs/master/testing
Репозиторий из которого собираются контейнеры с Ларочкой:
github.com/EvilFreelancer/doc...
А вот тут уже собранные контейнеры:
hub.docker.com/r/evilfreelanc...
Полезные ссылки:
- Телега: t.me/evilfreelancer
- Основной канал: / @pavelzloi
- Live-канал: / @e-freelancerlivechann...
- Twitch: / evilfreelancer
- Twitter: / evilfreelancer
- GitHub: github.com/EvilFreelancer
Ссылки на Steam:
- Группа Steam: steamcommunity.com/groups/gam...
- Рекомендации куратора: store.steampowered.com/curato...
Сделать пожертвование:
- www.donationalerts.com/r/evil... - Наука та технологія
Какой же вы крутой, как вам все легко удается манипулировать с данными, видать опыт у вас большой, а я только начинаю))
Спасибо за видео. Очень обширно и понятно =)
Интересная тема, добавил в очередь просмотра :) Спасибо
Пожалуйста :) Кстати, обратите внимание на UPD видос про тестирование. там я пару моментов уточнил.
Второй день мучаюсь с юнит тестированием... Уже глянул laravel daily, почитал Занстру - ни*уя не понятно! После вашего видео, начал хоть что-то делать, все очень доходчиво и вполне интересно.
P.S. Вставочки и отступления бесценны, первые 20 минут засыпал как и на всем остальном, но потом включился. Паша - вы такой няша :3
Спасибо Вам!
музыка на заднем плане с ума сводит, а так супер
Видосы хорошие. Звук тоже неплохой.
Благодарю, вопрос качества звука стоял передо мной очень остро, потому что я очень не люблю слушать, пусть даже очень крутые лекции или блоги, голос которых записан на коленке с кучей шума и искажений. Плюс хороший микрофон и звуковушка стоят не так уж и дорого.
Но когда есть хороший микрофон возникает новая проблема, а именно нормализация записанного голоса, но это уже вопрос моего перфекционизма :)
найс!
Приятно слушать
Добрый день! Благодарю за комментарий, рад что видеоролик понравился, у меня много подобного материала.
На данный момент только что закончил цикл Laravel Lighthouse (это такой плагин для создания API сервера на GraphQL), ещё сегодня будет стрим про один OpenSource проект на Laravel в 1800 MSK.
В дальнейшем есть куча планов и идей ожидающих воплощения, ещё бы времени свободного было бы чуть побольше :)
спасибо
спс
Спасибо за видео. У меня вопрос. Есть ли смысл на классы test вешать интерфейсы, создавать абстрактные классы , что бы как то структурировать классы? И есть ли смысл делать тесты на структуру бд(название и тип полей)?
20:05 Так вот же $this->call() это и есть этот механизм, можно вкладывать его в другие сидеры и таким образом выстраивать зависимости)
Глобальные функции, как это весело) на самом деле не стоит так делать хелперы, для этого есть статические методы класса
19:45 "Юзерсы, моя прелесть"))... Простите, я большой фанат Властелина Колец. Очень напомнило как Горлум там говорит "Хоббитсы"))
Вы правильно заметили, именно такого эффекта я и хотел добиться :)
Все хорошо, по делу, но только они не фьюча (future) тесты, а фича (feature) тесты, в смысле интеграционные
18:38 целая таблица для двух записей?
Ну это пока всего две записи, потом возможно будет больше, основная причина почему целая таблица для всего пару строк так это ссылки и ограничение по внешнему ключу, чтобы записи с неправильным языком в других таблицах, которые на languages ссылаются, нельзя было добавить.
23:07 а разве так же нельзя создать тест через пкм на класс и указать папку?
Приветствую! Конечно можно, но только надо будет не забыть указать TestCase ларки в качестве extends у нового теста, если этого не сделать тестировать ларку не получится, потому что ядро приложения не будет инициализироваться как надо и все тесты будут выдавать ошибки.
На 14:40 автор говорит, что объект будет создан, но не будет занесён в БД. Это не так. Просто после тестирования идёт откат изменений в БД, и этот откат может происходить по разному, в зависимости от трейта, используемого в тесте. См. в документации Трейты тестирования.
Спасибо! Нууууу..... очень много говоришь, понимаю, что все по теме говоришь, но так все запутано:)
Добрый вечер! Благодарю за комментарий, ну что поделать, программирование est non .... canina :)) со стороны кажется что написать тесты дело элементарное, а как начинаешь их сам писать сразу понимаешь, что задача явно не из простых, особенно если есть стремление к максимальному покрытию кода тестами.
Да и несложно объяснить сложное тоже задачка та ещё, я как уж на сковородке извивался пытаясь максимально просто рассказать про тесты, по видео это хорошо слышно и видно ;)
UPD. Кстати. вот небольшое дополнение ua-cam.com/video/PNfJagDwX0Q/v-deo.html
Нужны таймкоды в описании
Добрый день! Благодарю за комментарий, постараюсь учесть Ваше предложение в будущем.
14:00 у меня на этом моменте реально пишет в БД
Добрый день! Благодарю за комментарий, Вы правы, метод create на самом деле выполняет процедуру записи в базу, просто я забыл в самом начале видео сказать про трейт, который выполняет удаление созданных в процессе выполнения тестов записей. Об этом уточняю в следующем видео ua-cam.com/video/PNfJagDwX0Q/v-deo.html
Сервайс? :))) Сервис, как и по-русски )))
То чувство когда постоянно нажимал ctrl + F5 при разработке сайта
-А что так можно было!?
Я так понимаю у тебя не SSD судя по скорости рефреша бд
Всё верно, сижу на SSD дисках уже наверно лет восемь, как только они стали стоить не космических денег перестал покупать жестаки для рабочих машинок.
Но знаю о то что SSD не такие живучие как жестаки, поэтому все бэкаплю на сервер с рейдом, в случае переустановки системы это сильно выручает.
39:00 Если запустить тест в 16:01:(59.6 секунд), то тест не пройдет xD. Но это мелочи
Ой, придираетесь к примеру :) Но согласен, получилось как-то тупо.
Да шучу же я
Лучше юзать trait чтобы подключить специфичные функции в конкретном классе, а не тащить всё на глобальный уровень
Добрый день! Благодарю за комментарий, Вы правы, так делать лучше, но не всегда удобно :)
Почему ты злой?)
Привет! В качестве псевдонима выбрал себе противоположность одной из самых преобладающих черт моего характера.