Laravel Dusk 测试:Class 属性 不反映下一个 'test' 函数中的更新值

Laravel Dusk Testing: Class property doesn't reflect the updated value in the next 'test' function

测试 class 定义了变量 $uid。然后在函数 testCreateNewUser 中对其进行修改。但是当我尝试在函数 testRetrieveUser 中使用该变量时,它仍然保留声明时使用的值。为什么变量 $uid 的新值没有反映在下一个测试函数中?

class Testing extends DuskTestCase{

protected $uid = 'seed';

public function testCreateNewUser()
{
    $this->browse(function (Browser $browser) use ($user) {
        $browser->visit('/')
                ->assertSee('Laravel');
    });

    $this->uid = 'my new value';  //value assigned to $this->uid

    logger($this->uid);    //this logs correctly 'my new value'
}

public function testRetrieveUser()
{
    $uid = $this->uid;
    logger($uid);        //when logged, it shows 'seed'
}
}

Dusk/PHPUnit 为每个测试创建一个新的 Testing 实例。

您必须使用静态属性:

protected static $uid = 'seed';

static::$uid = 'my new value';

$uid = static::$uid;