LoginSignup
6
4

More than 3 years have passed since last update.

Laravelのテストメソッド毎にconfigを設定する

Posted at

テスト対象のコードの中に、configを取得して使用するコードがある場合の対応方法

テストごとにconfigをセットできる

例えばconfig/app.php にあるname を取得するコードがあるとする

$name = config('app.name');

テストコードを書く際に、ここの値により処理が変わることをテストしたい場合、テスト毎にconfigを値を設定できる

use Illuminate\Support\Facades\Config;

// 省略

public function test1() {
    // ここでテストコードで取得するconfigをセットする
    Config::set('app.name', 'app_name');

    $name = Config::get('app.name'); // app_nameが取得できる

    // 処理

    $this-assertTrue(true); // テスト
}

public function test2() {
    // configがセットされていない場合
    Config::set('app.name', '');

    $name = Config::get('app.name'); //  ""になる
}

tinkerで動作を確認

$ php artisan tinker
Psy Shell v0.9.6 (PHP 7.2.14  cli) by Justin Hileman
>>> Config::get('app.name');
=> "Laravel"
>>> Config::set('app.name', 'app_name');
=> null
>>> Config::get('app.name');
=> "app_name"

// こちらでもok
>>> config('app.name');
=> "app_name"

参考

固有のconfig値を設定する

6
4
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
4