#php #laravel #phpunit
#php #laravel #phpunit
Вопрос:
Я хочу выполнить модульный тест в phpunit, где я проверяю, не имеет ли конкретный маршрут какого-либо промежуточного программного обеспечения, поскольку это требование для этого маршрута.
Возможно ли получить список промежуточных программ ОС для маршрута, используя, например, классы Route или Route collection?
Комментарии:
1. если у вас есть маршрут, вы можете вызвать
middleware
илиgatherMiddleware
получить промежуточное программное обеспечение, но что-то вроде группы «web» просто выдаст «web», а не все промежуточное программное обеспечение в этой группе2. Добавление к комментарию lagbox, что-то вроде
Route::getRoutes()->get()[0]->computedMiddleware
. Если вы выполните повторную итерациюforeach(Route::getRoutes()->get() as $route)
, вы можете проверить методы, доступные дляRoute
класса, и посмотреть, есть ли у вас то, что вам нужно: laravel.com/api/8.x/Illuminate/Routing/Route.html
Ответ №1:
Это должно сработать
$route->gatherMiddleware();