docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api
uk/docs/api/rest-bundle/developers/testing.md
новий файл +35
−0
Тестування
Як запускати тести самого бандла і як вони влаштовані. Знадобиться, якщо ви вносите зміни в REST Bundle.
Запуск
composer install
vendor/bin/phpunit -c phpunit.xml.dist
vendor/bin/phpunit -c phpunit.xml.dist --filter ErrorResponseTest
composer test і make test запускають PHPUnit (з 1.2). У Docker (make up-d, контейнер php_<PROJECT_NAME>):
docker exec php_rest vendor/bin/phpunit -c phpunit.xml.dist
cebe/php-openapi видає deprecation-попередження PHP 8.4 про неявно nullable параметри; це очікувано.
Структура
| Тека | Тип | Що перевіряє |
|---|---|---|
tests/Unit |
без kernel | правила маршрутів RestServiceMap, RpcRestRouteLoader, параметри й приведення типів RpcFromRest, RestErrorNormalizer і REST-винятки, лістенери, RestRouteImport, білдери OpenAPI і Postman, RestBundleExtension, Package |
tests/Integration |
сервіси контейнера | RestRequestParser (групи, версії, HTTP-методи, токени), пріоритети лістенерів |
tests/Functional |
HTTP через kernel | маршрути й псевдоніми кількох імпортів, виконання, версії, параметри, помилки RFC 9457, документи й переклади, безпека, rpc.post_response, співіснування з іншим адаптером IApiRouteImport |
tests/Fixtures |
RPC-процедури, файл маршрутів, переклади, другий адаптер, записувач rpc.post_response |
tests/TestKernel.php завантажує FrameworkBundle, SecurityBundle, JsonRpcBundle і цей бандл. Кеш kernel лежить у <tmp>/ufo-rest-tests; тест задає TestKernel::$security перед bootKernel(), щоб отримати контейнер з іншою конфігурацією безпеки. Функціональні тести успадковують FunctionalTestCase (send(), json()).
Примітки
- Якщо після швидкої зміни fixtures тест бачить старий контейнер, видаліть
<tmp>/ufo-rest-tests. - Додавайте функціональний тест на будь-яку зміну маршрутів, статусів, problem-документів чи документації: це REST-контракт.