LoginSignup
6
6

More than 5 years have passed since last update.

Laravelのテストでインスタンスを作成する時はサービスコンテナ使ってmakeメソッドで依存解決すると便利

Posted at

課題

Laravelでテストを書く時に、テストメソッドの中でインスタンスを作成したい時があります。

例えばコンストラクタインジェクションで複数インスタンスの依存注入を行っている場合に、ずっと注入するクラスのインスタンスを全て作成してから引数に渡していて、めっちゃめんどいなーと思っていました。

こんな感じです。。><

$repoA = new RepositoryA();
$instanceA = new InstanceA();
$instanceB = new InstanceB($repoA,$instanceA);

解決

サービスコンテナを使って依存解決すると一発

$instanceB = $this->app->make('InstanceB');

$appにアクセス出来ない場所で使いたい場合は、resolveヘルパメソッドが使える

$instanceB = resolve('InstanceB');

もっと早く調べてればよかった><

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6