概要
- laravelのテストコードのアサーションにて任意のデータを含むレコードがテーブルに存在するか確認するアサーションについてまとめる。
チェック方法
-
assertDatabaseHas
を用いてチェックを行う。 -
例えば「usersテーブルにidカラムが1かつ、emailがtest@example.comのレコードが存在することの確認」をする場合下記のようになる。
$this->assertDatabaseHas( table: 'users', data: [ 'id' => 1, 'email' => 'test@example.com', ] );
-
レコードが存在していた場合、当該アサーションは合格となる。
-
ちなみに
assertDatabaseMissing
を用いると指定したカラムの情報のレコードが存在しない場合アサーションは合格となる。// usersテーブルにidカラムが1のレコードがなければアサーションは合格になる $this->assertDatabaseMissing( table: 'users', data: [ 'id' => 1, ] );
参考文献