泉(@izumin_0401)です。
今回は、Laravelのモックでzipファイルを返却する方法を解説します!
ブログ記事はこちら
【Laravel】モックでzipファイルを返却する方法
public function mock()
{
    $zip      = new \ZipArchive;
    $zip_path = tempnam(sys_get_temp_dir(), 'zip');
    if ($zip->open($zip_path) === true) {
        // zipファイルにcsvファイルを入れてみる
        $csv = implode("\n", [
            'id,name',
            '1,izumi',
        ]);
        $zip->addFromString('sample.csv', $csv);
        $zip->close();
    }
    $zip_file = file_get_contents($zip_path);
    unlink($zip_path);
    $this->app->bind(\App\Services\HogeService::class, function () use ($zip_file) {
        return Mockery::mock(\App\Services\HogeService::class)
            ->shouldReceive('exec')
            ->andReturn([
                'status_code' => 200,
                'body'        => $zip_file,
            ])
            ->getMock();
    });
}
↑みたいな感じで、zipファイルを作成した後にMockeryを使ってzipファイルを返せばOK!
まとめ
「application/zip」ってキモいよね。
ではまた。