Enviando uma URL de referência para controladores ao testar no Laravel

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 $serverparâmetro. Para enviar um URL, você deve passar um HTTP_REFERERassim:

$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!