РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1191 of 1392 menu

Метод withoutMiddleware

Метод withoutMiddleware применяется к экземпляру HTTP-клиента в тестах Laravel и позволяет отключить выполнение глобальных или именованных посредников (middleware) для текущего запроса. Он полезен при тестировании контроллеров, когда необходимо изолированно проверить логику без влияния посредников аутентификации, CSRF-защиты или других проверок. Метод принимает первым параметром массив или строку с именами посредников, которые нужно отключить. Если параметр не указан, отключаются все посредники.

Синтаксис

<?php $this->withoutMiddleware(); $this->withoutMiddleware($middleware); ?>

Пример

Давайте отключим все посредники при тестировании маршрута с аутентификацией:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_article_index_without_middleware() { $this->withoutMiddleware(); $res = $this->get('/articles'); $res->assertStatus(200); } } ?>

Результат выполнения кода:

"Test passed"

Пример

Давайте отключим только CSRF-посредник для тестирования POST-запроса:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_article_store_without_csrf() { $this->withoutMiddleware('App\Http\Middleware\VerifyCsrfToken'); $data = ['title' => 'Test article', 'content' => 'Test content']; $res = $this->post('/articles', $data); $res->assertStatus(201); } } ?>

Результат выполнения кода:

"Test passed"

Пример

Давайте отключим несколько посредников одновременно:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_article_update_without_middlewares() { $this->withoutMiddleware([ 'App\Http\Middleware\VerifyCsrfToken', 'App\Http\Middleware\Authenticate', ]); $data = ['title' => 'Updated article', 'content' => 'Updated content']; $res = $this->put('/articles/1', $data); $res->assertStatus(200); } } ?>

Результат выполнения кода:

"Test passed"

Смотрите также

  • метод withoutExceptionHandling,
    который отключает обработку исключений в тестах
  • метод withHeaders,
    который добавляет заголовки к запросу
  • метод actingAs,
    который выполняет аутентификацию пользователя
  • метод get,
    который выполняет GET-запрос в тестах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить