Laravel

「Lumen」で実装したAPIのテスト方法

Lumen」で実装したAPIのテストを行う場合「Laravel」では使用出来ない処理もあります。
特に「POST」の場合、bodyが取得できない等といった事がありハマったのでやり方をまとめます。
「PUT」と「DELETE」のやり方はまだ出くわしてないので、今回はありません。

「GET」の場合

GET」の場合は、例として以下の様になります。

// 指定したURLに「GET」でアクセスする
$this->get("/test", ["X-API-KEY" => "aaabbccddd"]);

// jsonで取得する
$response = json_decode($this->response->getContent());

// Check status code
$this->assertSame(
    200,
    $this->response->status()
);

$this->get()」で「GET」を想定したケースが出来ます。
第一引数にURL、第二引数にHeader情報を連想配列で設定します。

「POST」の場合

POST」の場合は、「GET」と違って「$this->post()」を使用すると、サーバーにbodyを送る事が出来ません。
そこで以下の様に処理を行います。

// 指定したURLに「POST」でアクセスする
$this->json("POST", "/test", ["name"=>"Tomozumi"], ["X-API-KEY" => "aaabbccddd"]);

$this->json()」で、第一引数に「POST」を指定すると、bodyを受け取る事が出来る様になります。
第二引数にURL、第三引数がbodyを連想配列で設定します。
第四引数にHeader情報を連想配列します。