0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelで "A facade root has not been set." というエラーが出た場合の対処法

Posted at

概要

  • Testを作成中に遭遇したことのないエラーが発生し、手間取ったため備忘録として記載する

原因

@dataProvider

こちらを利用する方法を誤っていた

一通りの対策

少し古い記事ですが、@dataProvider を利用していない場合は一度こちらを試したのちに試す方が良いかもしれません

対策

  /**
   * @test
   * @dataProvider provideValidConditions
   */
  public function testValidConditions($condition, $expectedResult)
  {
  // 省略
  }

    public static function provideValidConditions()
  {
    return [
    // 省略
    ];
  }

ざっくりこの形で利用していた。
この時、returnで返す値が固定値でない場合にエラーが発生する

対策としては、constで定義した値を利用することなどで初期化したタイミングで触れるようにすることである

setUpメソッド内で定義した場合も同様にエラーが発生するため注意が必要である

要は、テストでデータを挿入するのだから固定値を使えということだろう

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?