快速提示:使用 Laravel 的 from() 测试助手
发布时间 作者 Jason Beggs
使用 Laravel 进行测试时,有时需要测试用户是否被重定向回他们“提交”表单的页面。
通常,如果您只是调用以下代码,测试将失败,因为会话没有设置上一个页面。
$this->post('/some-endpoint')->assertRedirect('/some-endpoint');`,
为了解决这个问题,Laravel 提供了一个 from()
测试助手,它在后台设置了一个 referer
头部,并将 _previous.url
会话变量设置为传入的 url。然后,当您在控制器或其他地方调用 redirect()->back()
时,Laravel 就会知道应该将用户重定向到哪里。
/** @test */public function the_user_is_redirected_back_to_the_edit_page(){ $user = User::factory()->create(); $post = Post::factory()->create(); $data = ['title' => 'Paul is Eric and Eric is Paul']; $this->actingAs($user) ->from('/posts/1/edit') ->patch('/posts/1', $data) ->assertRedirect('/posts/1/edit');}
TALL 技术栈(Tailwind CSS、Alpine.js、Laravel 和 Livewire)顾问,designtotailwind.com 的所有者。