Download the PHP package fillincode/tests without Composer
On this page you can find all versions of the php package fillincode/tests. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download fillincode/tests
More information about fillincode/tests
Files in fillincode/tests
Package tests
Short Description A package for simplified work with tests in Laravel
License MIT
Informations about the package tests
Fillincode-tests
Быстрая генерация тестов без необходимости писать всю логику тестирования вручную.
Возможности пакета:
- Пакет выполняет тестирования middleware маршрута,
- Запросы от каждого пользователя, определенного в конфигурации,
- Тестирование запросов с передачей данных,
- Тестирование запросов с передачей параметров адресной строки,
- Проверка кода ответа для каждого теста,
- Заполнение данными БД перед выполнением запроса,
- Создание насмешек
Installation
Публикация конфигурации
Config
Конфигурация находится в файле config/fillincode_tests.php
Необходимо указать дефолтные коды ответа для пользователей, а также для невалидных данных и параметров адресной строки
Необходимо указать, какие пользователи есть в системе и какие guards проверяют их авторизацию. Для guest не нужно указывать guard
Commands
Сгенерирует базовый класс для функциональных тестов, который содержит основную логику тестов
Генерирует класс теста. С помощью этой же команды можно выбрать интерфейсы, который реализует класс. Методы будет автоматически добавлены в класс
Пример первоначальной настройки пакета
Необходимо в конфигурации указать, какие есть пользователи в системе, дефолтные коды ответа для этих пользователей.
После чего выполнить команду для генерации класса. В этом классе будут реализованы методы тестирования от каждого пользователя.
Затем реализовать методы либо в BaseFeatureTest, либо в TestCase для получения этих пользователей.
`
/**
- Получения пользователя web_user
- @return User */ public function getWebUser(): User { return User::whereEmail('[email protected]')->first(); }
/**
- Получения пользователя api_user
- @return User */ public function getApiUser(): User { return User::whereEmail('[email protected]')->first(); }
/**
- Получения пользователя admin
- @return User
*/
public function getAdmin(): User
{
return User::whereEmail('[email protected]')->first();
}
Возможности пакета для тестов
Изменения дефолтных кодов для текущего маршрута
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/CodeInterface
- Реализовать метод getCodes
Изменения дефолтных кодов для передачи невалидных параметров в адресной строке
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/ParametersCodeInterface
- Реализовать метод getCodesForInvalidParameters
Передача параметров во время тестирования
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/ParametersInterface
- Реализовать методы getParameters и getInvalidParameters
Первый метод должен вернуть корректные параметры адресной строки, второй метод должен вернуть некорректные параметры адресной строки
Валидация данных
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/ValidateInterface
- Реализовать методы getValidData и getNotValidData.
Первый метод должен вернуть валидные данные, второй метод должен вернуть невалидные данные
Заполнение БД данными перед выполнением каждого запроса
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/FakeInterface
- Реализовать метод faker. В этом методе нужно будет выполнить логику заполнения данными БД
Создание фейкового хранилища данных
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/FakeStorageInterface
Для теста, который реализует этот интерфейс автоматически будет создано фейковое public хранилище
Насмешка в тестах
- Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/MockInterface
- Реализовать метод getMockAction
Если пакет работает в связке с пакетом Fillincode/Swagger и есть маршруты, которые не нужно документировать
-
Необходимо имплементировать интерфейс Fillincode/Tests/Interfaces/DocIgnoreInterface
- В классе BaseFeatureTest в метод callRouteAction добавить
Пример использования пакета
Для минимального тестирования достаточно создать класс, который будет наследником класса BaseFeatureTest и реализовать методы getRouteName и getMiddleware
Пример класса, который реализует все возможности пакета.
Возможности класса:
- Выполнит запросы от всех пользователей, которые определенны в конфигурации пакета,
- Выполнит тесты с отправкой параметров адресной строки
- Передаст данные для валидации,
- Создаст фейковое хранилище файлов,
- Подделает фасад Http,
- Проигнорирует документирование результатов тестирования
- Заполнит базу 10 проектами