Symfony

symfony client Выключить перехват исключений клиентом $client->catchExceptions(false) Как проверить исключение в тесте

Используйте:

$client->catchExceptions(false)

Источник: https://symfony.com/doc/current/testing....

При тестировании (написании автоматических тестов) получать клиент можно:

  1. так
  2. или вот так для файерволов без состояния

Проверено в Symfony 7

symfony AccessDeniedException и AccessDeniedHttpException: Какая разница

Практика покаывазется, что

  • AccessDeniedHttpException - выбрасывается, когда пользователь залогинен, но напр. у него не тот id (проверка на владельца )
  • AccessDeniedException - когда просто у пользователя нет роли (как минимум в разлогинной ситуации)

Еще есть старая невнятная заметка:
New in Symfony 2.5: Create the Correct Denied HTTP Exception https://symfony.com/blog/new-in-symfony-...

php Сервисный слой - что это такое, как создается

Причина выделения сервисного "слоя" состоит в том, что отдавать данные и получать их можно в разных форматах (из запроса или еще как-то) а есть чистая логика работы с чем-то - в смысле, что на входе просто параметры метода и все, а на выходе - ну какие-то данные + логика внутри

symfony Где проверяются доступны по аннотациям/атрибудем роля (security, vedor)

Задача

Напр. имеется доступ:

#[IsGranted('ROLE_USER')]

Надо узнать в каком пакете и как (какие данные извлекаются) происходит проверка авторизации
Общая задача: в целом кратко процесс проверки доступа

После общего решения также можно сравнить: чем отличаются проверки доступа для "реальной" авторизации и через loginUser()
в тестах

swagger openApi Что лучше: в одном или нескольких файлах. Разбиравать ли описание

Выбор зависит от нескольких моментов, в т.ч. стоит учитывать:
размер вашего проекта, его архитектуру, командные соглашения и личные предпочтения.

На что именно стоит обратить внимание:

symfony Класс пользователя для авторизации - пример реализации UserInterface

Класс может выглядеть напр. так (основная его задача - реализовывать интерфейс UserInterface):

codeception symfony functional Функциональные тесты, Получение клиента (client)- заметки, mock

Наброски того, как можно организовать функциональное тестирование API без браузера/сервера

Проверялось на: Symfony 6, Symfony 7, Codeception 5

Получение клиента

См. отдельную заметку о получении клиента

Использование клиента - отправка запросов

Используя клиент можно авторизоваться напр. так (в т.ч. получить куку):

Pages

Subscribe to RSS - Symfony