Пишем сообщество phpland на Laravel - Часть 4

В этой статье мы продолжим разработку нашего сообщества "phpland" на Laravel.

Во второй статье мы создали модуль авторизации на сайте. И по хорошему нам нужно было бы написать phpunit feature тесты (которые тестируют функционал), чтобы автоматически тестировать, всё ли правильно работает.

Благо, сообщество Laravel это уже сделало это за нас. :-) Спасибо Dariusz Czajkowski.

Давайте подключим специальный Composer пакет, создадим тесты и убедимся что всё работает?!

Подключем Composer пакет

composer require dczajkowski/auth-tests --dev

Создаем тесты

php artisan make:auth-tests --without-email-verification

Они появляются в папки: "tests/Feature/Auth".

Для тестов мы будем использовать отдельную БД (SQLite), поэтому добавим в файл phpunit.xml две строчки в секцию "php":

<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>

Отдельную БД, чтобы не засорят тестами основную и не мещать данные.

Исправим тест "tests/Feature/ExampleTest.php"

class ExampleTest extends TestCase
{
    use RefreshDatabase;
}

Чтобы при каждом тесте бд сбрасывалась и всё выполнялось по новой.

На будущее...

В будещем мы легко сможем скачать новую версию тестов, вот так:

composer update dczajkowski/auth-tests
php artisan make:auth-tests --without-email-verification

Добавим в composer.json алиас для быстрого запуска тестов

Откроем файл "composer.json" и в секцию "scripts" добавим:

"phpunit": "./vendor/bin/phpunit"

Тестируем модуль аутентификации в Laravel

composer phpunit

Если всё окей, мы увидим что-то типа этого:

PHPUnit 7.5.12 by Sebastian Bergmann and contributors.

................................                                  32 / 32 (100%)

Time: 910 ms, Memory: 28.00 MB

OK (32 tests, 166 assertions)

Мы успешно протестировали модуль "Auth" и если нам вдруг придётся что-то изменить в этом модули, мы сделаем изменения, а потом прогоним тесты, чтобы убедиться что всё ещё работает.

Вследующей статье напишем свои тесты для нашей сущности "Page".

Посмотреть всё в виде коммита на Github можно здесь: https://github.com/dignityinside/phpland_laravel/commit/13ec1100d980f9b5f451537f24f9d97f57fd6e5e


Оставьте комментарий!

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий:


Написать новый комментарий

Видео

Самые полезные видео на темы "веб-разработка", "Linux" и "IT". Смотри и обучайся!

Подробнее »

Сделки

Самые горячие и выгодные сделки, акции и скидки на видео-курсы, софт, услуги, книги и железо из всего рунета.

Подробнее »

Планета

Наша планета собирает интересные статьи из различных источников и объединяет их в одну ленту. Которую можно читать на нашем сайте.

Подробнее »