在数据提供者返回的函数中访问$ this的属性

时间:2020-11-05 17:54:45

标签: php laravel phpunit

我正在使用Laravel并试图简化测试用例。在从Illuminate\Foundation\Testing\TestCase继承的类的实例内部,我进行了以下设置。

class TestClass extends TestCase {
  public string $test;
  public function setUp() {
    $this->test = 'asdafdsf';
  }
  
  /** @dataProvider provider */
  public function testSomeTest(\closure $getData) {
    $data = $getData();
    $this-assertIsString($data);
  }

  public function provider(): array {
    return [
      [ function() { 
          $accessed = $this->test;
          return 'not needed, failure before this line';
      } ],
  }
}

运行此测试将引发以下异常

$test must not be accessed before initialization

我不理解此错误,因为对$ this的引用仅仅是一个引用。因此,在访问该属性时,我所知的属性应该已经通过setUp函数进行了设置。

我想念什么?

0 个答案:

没有答案