ラボ > Laravel、Lumen:テスト
laravel ユニットテスト:DBから取得したデータを確認したい
作成日:2025-04-11, 更新日:2025-04-11
コントローラーで、下記のような形でDBからデータを取得
$request_search = array( 'word' => 'hoge', 'page' => 1, ); $list = Lib\ItemLib::search($request_search);
テストコード
実行部分
$request_search = [
'word' => 'hoge',
'page' => 1,
];
$results = ItemLib::search($request_search);
// 各種確認の処理
各種確認の処理: $resultsがEloquentの場合
$this->assertCount(●, $results); // 結果が●件か確認
$this->assertTrue($results->pluck('title')->contains('hoge●●')); // 結果にtitleが「hoge●●」があるか確認
$this->assertTrue($results->pluck('title')->contains('hoge★')); // 結果にtitleが「hoge★」があるか確認
各種確認の処理: $resultsが配列の場合
$this->assertCount(●, $results); // 結果が●件か確認
$title_many = array_column($results, 'title'); // 結果から「title」だけ抜き出した配列に変換
$this->assertContains('hoge●●', $title_many);
$this->assertContains('hoge★', $title_many);
各種確認の処理: $resultsが配列でちょっと面倒な内容の場合
「検索対象であるか確認、対象が有効であるか確認」をしたい
// $results = array(
// array('title' => 'hoge●●', 'enabled' => 1),
// array('title' => 'hoge★', 'enabled' => 0),
// );
foreach ($results as $row) {
// キーワードが含まれているか(部分一致)
$this->assertStringContainsString($request_search['word'], $row['title']);
// 有効フラグが 1 であること
$this->assertEquals(1, $row['enabled']);
}