【发布时间】:2016-08-15 20:42:09
【问题描述】:
我在页面 /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', 'exampleController@externalLink')->name('my.route');
}
}
链接/my/example/page
<a href="/my/route/to/external/controller">Link</a>
这条路由/my/route/to/external/controller指向exampleController控制器中的这个控制器方法externalLink,它返回要使用的href的url
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
如何在功能上测试按钮被点击并重定向到外部网站?
【问题讨论】:
-
你的路线是什么样的?
-
@tptcat 我已经更新了问题