我正在使用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
函数进行了设置。
我想念什么?