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;
测试 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;