У меня есть ссылка на странице /my/example/page
, которая ссылается на маршрут laravel my.route
.
Маршрут
Route::group(['middleware' => ['auth']], function () {
Route::group(['middleware' => ['Some\Custom\Auth\Middleware:1']], function () {
Route::match(['GET', 'POST'], '/my/route/to/external/controller', '[email protected]')->name('my.route');
}
}
Ссылка на /my/example/page
<a href="/my/route/to/external/controller">Link</a>
Этот маршрут /my/route/to/external/controller
указывает на этот метод контроллера externalLink
в контроллере exampleController
, который возвращает URL-адрес для href для использования
public function externalLink()
{
return $this->redirect->away('www.externalsite.com');
}
Мой тест
$this->visit(/my/example/page)
->click('Link')
->assertRedirectedToRoute('my.route');
Я постоянно получаю ошибку
Symfony\Component\HttpKernel\Exception\NotFoundHttpException
когда я использую метод тестирования click()
.
Я могу поймать это, используя @expectedException
, но его не помогает, поскольку я ожидаю увидеть другую страницу.
Я также пробовал (не вместе);
->assertResponseStatus(200);
->seePageIs('www.externalsite.com');
->assertRedirect();
->followRedirects();
Из проверки браузера, когда щелкнул URL, я получаю
http://www.example.com/my/route/to/external 302
http://www.externalsite.com 200
Как я могу функционально протестировать кнопку нажатой и перенаправлять на внешний сайт?