Para algumas funções de redirecionamento no Laravel, como Redirect::back()
, uma URL deve ser passada em seus cabeçalhos para que o framework saiba para qual URL redirecionar. Ao testar rotas que redirecionam apenas para o URL anterior, isso pode ser confuso, pois não existe um URL anterior. Deve ser enviado manualmente.
Ao usar a $this->call()
função em seus testes, você pode fornecer mais argumentos do que apenas o método e o URL. Os documentos do Laravel explicam esta função com alguns detalhes. Devemos enviar uma matriz de cabeçalhos onde os documentos designam o $server
parâmetro. Para enviar um URL, você deve passar um HTTP_REFERER
assim:
$this->call('GET', '/event/rsvp?event_id=1', [], [], ['HTTP_REFERER' => 'http://alexsears.com']);
Isso acertará o URL em /event/rsvp?event_id=1
. Nessa rota, Redirect::back()
costumo voltar à URL anterior, que enviei para a rota como meu quinto parâmetro. Ele irá redirecionar de volta para o meu blog . É simples!