この記事で解決できる悩み
いずみ
こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴9年)で、資格は13個保有しています。
「Laravelのモックでzipファイルを返却する方法を知りたい」とお考えではありませんか?
結論、一時的に使うzipファイルを作成して返却すればOKです。
外部APIを実行したらzipファイルが返ってくるケースがあり、まずはローカルで動作確認したかったんですよね…
ということで、本記事ではLaravelのモックでzipファイルを返却する方法を解説します。
すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
目次
【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で特定の処理をモックすればOKです!
Mockeryって便利ですよね…
まとめ
今回は、Laravelのモックでzipファイルを返却する方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Laravelの勉強なら「PHPフレームワーク Laravel入門 第2版
最後までお読みいただき、ありがとうございました!
- クソおすすめ本
海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。