Injection)によって、必要なインスタンスを生成するようになっています。インスタンスを注入してくれるこの機能は非常に便利なのですが、テストを書いている際に困ることがあります。Laravelにはリクエストをエンドポイントに送信して、レスポンスを受け取るテストを書くことが出来ます。テストの一連の処理の間に外部サービスのAPIを実行するクラスがある場合、テストが実行された際に外部サービスのAPIが実行されることになります。仮に外部サービスのAPIをテストで実行することを許容したとしても、外部サービスに何かしらのトラブルが発生していた場合、テストが失敗するようになり、テストの結果が外部サービスに依存してしまうことになります。した問題を回避するために、テストで実行させたくない処理をモックするという方法が取られます。今回はLaravelのDIで生成されるインスタンスを別のクラスに差し替える方法を紹介します。するのは、テスト実行時にDIで生成されるインスタンスをMockeryでモックしたクラスに差し替える方法です。MockeryはPHPUnitやPHPSpec等のテスティングフレームワークと共に使用されるライブラリです。off...github.comテストの内容は、routes/web.phpで設定しているエンドポイントにリクエストを送信し、そのレスポンスを確認する、という内容です。モックの差し替えはテストコードで定義することになります。使用したサンプルコード、モックを使用した場合とモックを使用していない場合のテストコードをそれぞれ下記に示します。}上記のPostControllerのindex()の引数、$post_serviceをモックすることが目標です。}}上記のテストを実行した場合、PostControllerの$post_serviceにはApp\Services\PostServiceクラスのインスタンスが注入されています。fetchPosts()は1を返却するため、上記のテストは失敗します。それでは次にMockeryでモックしたクラスを注入するようにしてみます。モックを使用した場合DIで生成するインスタンスを変更するには、instance()を使用します。}}上記の場合、PostControllerの$post_serviceにはMockeryでモックしたインスタンスが注入されています。$this->instance()の第1引数にはモックしたいクラスの名前を指定し、第2引数にはMockeryのインスタンスを渡します。本記事では、mac+fishシェルの環境にphpbrewを使ってPHP7.4をインストールするまでの過程をまとめています。properties)を紹介します。PHPは7.4でクラスのプロパティに型を宣言できるよう...Laravel【Laravel】知っていると便利なヘルパー関数!tap()の使い方を紹介します前回firstOrCreate()について説明した際に、tap()について言及しました。今回はLaravelでテストコードを書く際に、普段使っている処理をまとめてみました。LaravelにはHTTPリク...Laravel【Laravel】ヘルパーメソッドを自作する方法をイチから解説Laravelで自作のヘルパーファイルを作る方法の紹介です!fish【PHP】fish+phpbrewでPHPのバージョンを管理するこの記事ではfishにphpbrewをインストールしてPHPのバージョンを管理する方法を紹介します。phpbrewは複数のバージョンのPHPをインストールして管理できるようにするツールです。Vue.jsを使って開発したりしてます。Verification)が追加。使い方と仕組みを紹介します。Constructor.お問い合わせプライバシーポリシ。