Download the PHP package avto-dev/dev-tools without Composer
On this page you can find all versions of the php package avto-dev/dev-tools. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package dev-tools
PHP developers tools
Install
Require this package with composer using the following command:
Installed
composer
is required (how to install composer).You need to fix the major version of package.
Использование
Данный пакет позволяет легко интегрировать в ваше приложение вспомогательные инструменты, позволяющие более эффективно вести разработку. Разделить их можно на следующие группы:
Вспомогательные сервисы для Laravel
Для Laravel-приложений вы можете подключать следующие сервис-провайдеры:
Сервис-провайдер | Его назначение |
---|---|
DatabaseQueriesLogger | Производит запись всех обращений к базе данных в лог-файл приложения |
Unit-тестирование приложения
В контексте фреймворка
PHPUnit
Bootstrap
Bootstrap - это файл, который выполняется перед запуском всех тестов, единожды. Основная его задача - произвести подготовку среды - создать директории для временных файлов (удалив предыдущие), подготовить схему БД и так далее.
Вы можете указать путь до своего собственного bootstrap-файла в конфигурации PHPUnit
(./phpunit.xml
):
Для Laravel-приложений
Написание кода по рекурсивному созданию директорий, соединению с БД может показаться вам довольно утомительным. Для того, чтобы упростить данную задачу вы можете создать свой класс bootsrapper
-а, который умеет поочередное выполнение всех методов внутри себя, начинающихся с префикса boot*
при создании собственного экземпляра. Более того - $this->app
уже хранит инстанс вашего приложения (достаточно подключить нужный трейт). Взгляните на пример:
И вы всегда имеете "свежую" схему БД перед запуском тестов.
Прочие приложения
Более простая реализация:
В обоих случаях не забудьте создать файл
./tests/bootstrap.php
, написав в нём<?php new MyBootstrap();
, указав<phpunit bootstrap="./tests/bootstrap.php">
в конфигурацииPHPUnit
.
Абстрактные классы Unit-тестов
Для более удобного тестирования вашего приложения вы можете использовать абстрактные классы Unit-тестов, поставляемых с данным пакетом (имеются версии как для Laravel-приложений, так и без данной зависимости).
Их отличительная особенность заключается в том, что они содержат дополнительные assert
-методы, которые позволят вам писать писать более лаконичные и выразительные тесты. Данный функционал подключается с помощью трейтов, так что вы сможете при необходимости составить свой собственный абстрактный класс (не наследованный от поставляемого) с необходимым набором "фишек".
Рекомендация использовать абстрактные классы обусловлена тем, что их функционал с течением времени будет расширяться, и вы сможете получать их новые возможности при помощи одной лишь команды composer update avto-dev/dev-tools
.
Для Laravel-приложений
Наследуйте классы своих тестов от AvtoDev\DevTools\Tests\PHPUnit\AbstractLaravelTestCase
.
Прочие приложения
Наследуйте классы своих тестов от AvtoDev\DevTools\Tests\PHPUnit\AbstractTestCase
.
PHPUnit-трейты
Ниже в виде сводной таблицы представлены имена трейтов и поставляемый с ними функционал. Все трейты расположены в AvtoDev\DevTools\Tests\PHPUnit\Traits
:
Имя трейта | Функционал |
---|---|
AdditionalAssertionsTrait |
Дополнительные assert-методы |
CreatesApplicationTrait |
Метод, создающий инстанс Laravel-приложения. При его использовании появляется возможность использовать методы beforeApplicationBootstrapped и afterApplicationBootstrapped |
InstancesAccessorsTrait |
Методы доступа к protected\private методам\свойствам у классов (с помощью рефлексии) |
LaravelEventsAssertionsTrait |
Методы тестирования событий (events) и их слушателей (listeners) |
LaravelLogFilesAssertsTrait |
Методы тестирования лог-файлов Laravel приложения |
LaravelCommandsAssertionsTrait |
Методы тестирования Laravel artisan комманд |
WithDatabaseQueriesLogging |
Подключая данный трейт в класс теста - все запросы к БД будут записываться в log-файл (класс теста должен наследоваться при этом от AbstractLaravelTestCase ) |
CarbonAssertionsTrait |
Методы для тестирования Carbon -объектов |
WithDatabaseDisconnects |
Подключая данный трейт в класс теста - на tearDown происходит отключение от всех БД (причина) |
WithMemoryClean |
Подключая данный трейт в класс теста - на tearDown происходит очистка свойств класса. Для использования этого трейта вне Laravel-framework необходимо вызывать метод clearMemory на tearDown интересующего класса |
WithGuzzleMocking |
Трейт, поставляющий метод создания хэндлера-обработчика запросов HTTP клиента Guzzle 6 |
AppVersionAssertionsTrait |
Методы для проверки версии приложения и крайней версии, указанной в файле CHANGELOG.md |
LaravelRoutesAssertsTrait |
Методы для проверки правильной настройки роутов Laravel |
Testing
For package testing we use phpunit
framework and docker-ce
+ docker-compose
as develop environment. So, just write into your terminal after repository cloning:
Changes log
Changes log can be found here.
Support
If you will find any package errors, please, make an issue in current repository.
License
This is open-sourced software licensed under the MIT License.
All versions of dev-tools with dependencies
ext-json Version *
phpunit/phpunit Version ^7.5 || ~8.0
avto-dev/stacked-dumper-laravel Version ^1.1
tarampampam/guzzle-url-mock Version ^1.1