Testování GET callu s parametry

Když chceme provádět feature/integrační testy, tak se nevyhneme GET volání. Za tímto účelem můžeme jednoduše využít metodu get():

$this->get('/some-url');

Problém ale nastává když potřebujeme přidat další parametry. Samozřejmě, můžeme natvrdo napsat URL se všemi parametry, ale to není ten best practise. Bohužel nemůžeme udělat něco jako tohle (i když to k tomu svádí):

$response = $this->get('/some-url', ['parameter1' => $foo, 'parameter2' => $boo]);

A to protože druhý parametr je pro definici headeru. Abychom mohli zavolat GET i s parametry musíme využít metody call():

$response = $this->call('GET', action(IndexCustomController::class), [
    'parameter1' => $foo,
    'parameter2' => $boo,
]);

Kde první parametr je typ volání, druhý URL a až třetí jsou parametry samotné.

Malé upozornění, pokud máte routu například v tomto formátu custom/action/{postId}, pak call musí být takto:

$response = $this->call('GET', action(IndexCustomController::class, [
    'postId' => $postId,
]));

Tedy URL parametr musí být součástí druhého parametru metody call().