
Laravelでテスト実行時に一部のテストしか実行されないことがある。
/*** @test */
の記述が抜けていると、そのテストは実行されない。
<?php
//backend\tests\Feature\InquiriesTest.php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use Illuminate\Http\UploadedFile; //アップロードチェックで必要
use Illuminate\Foundation\Testing\DatabaseTransactions;//テストで投稿したダミーデータを無かったことにしてくれる
class InquiriesTest extends TestCase
{
use DatabaseTransactions; //テストで投稿したダミーデータを無かったことにしてくれる
/**
* @test
*/
//実行される
public function すべての問い合わせレコードを取得()
{
$response = $this->get('/api/inquiries/getallId');
$response->assertStatus(200);//そもそもメソッドが通るか
//想定されるキーの形式で取得できているか
//引継元の問い合わせIDと問い合わせ内容が返ってくることを想定
$response->assertJsonStructure([
'*' => [
'inquiry_id',
'question',
]
]);
json_decode($response->content(), true);
}
//実行されない
public function csvインポート成功パターン()
{
// 一時ファイルを作成
$tmp_fp = tmpfile();
// CSVファイルとして書き込む
$csv_rows = [
[
'入電日時',
'機種名',
'シリアル',
'販売店',
'問い合わせ者',
'電話番号',
'ユーザー名',
'問い合わせ種別',
'問い合わせ内容',
'回答内容',
'リモートメンテナンス',
'承認者',
'満足度',
'オペレーターID',
'問い合わせID',
'引継元ID',
],
[
'2022-10-24',
'セキュリティハブ',
'',
'',
'',
'',
'',
'設定',
'あああ',
'いいい',
'なし',
'',
'満足',
'1',
'55556666',
'',
]
];
foreach ($csv_rows as $csv_row) {
fputcsv($tmp_fp, $csv_row);
}
// 一時ファイルのパスを取得
$tmp_meta = stream_get_meta_data($tmp_fp);
$tmp_path = $tmp_meta["uri"];
// 一時ファイルからアップロードファイルを作成
$file = new UploadedFile($tmp_path, 'upload.csv');//
$response = $this->post('/api/inquiriesImport',array('file' => $file));//keyが必要
$response->assertStatus(200); //csvインポートが通るかをテスト
}
実行されないcsvインポート成功パターン()メソッドの前に、
/**
* @test
*/
が抜けている。
テストメソッド毎にこの記述が必要。
じゃないと実行されない。