Symfony

symfony codeception Мок валидатора - подмена сетевого валидатора для функциональных тестов

Возможное решение

Для начала нужно получить именно тот контейнер, который реально используется для эмуляции сетевого запроса в ваших тестах.
После того как вы определились на чем именно (на каком объекте) вызывать getContainer() или подобный метод получающий контейнер, мок можно провести с помощью метода вроде:

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()
в тестах

Pages

Subscribe to RSS - Symfony