この記事はmiriwoお一人様 Advent Calendar 2022の4日目の記事です
概要
- laravelのFeatureテストコードにてbladeに値が渡されていることをテストする関数
assertViewHas()
の使い方を簡単にまとめる。
方法
-
Unitテストのテストコードで下記の様に記載することでテストする事ができる。
$response = $this->get('テストしたいURL'); $response->assertViewHas('bladeに渡されているであろう値のキー名', 実際の値);
-
例えば、
/info
にgetリクエストを送った時、表示bladeにキー名year
で値が2022
のデータが渡されているかをチェックしたい時は下記の様になる。$response = $this->get('/info'); $response->assertViewHas('year', 2022);
-
assertViewHas()
は第二引数にクロージャを設定するこで複数の値をチェックする事ができる。(クロージャの戻り値がtrueになれば当該チェックは通過する。)$expectedInfos = [ 'id' => 1, 'userId' => 1, 'year' => 2022, ]; $response = $this->get('/infos'); $response->assertViewHas('infos', function ($infos) use ($expectedInfo) { return $infos[0]->id === $expectedInfo['id'] && $infos[0]->userId === $expectedInfo['userId'] && $infos[0]->year === $expectedInfo['year']; });