laravel dusk tearDown() 必须与 Illuminate\Foundation\Testing\TestCase::tearDown() 兼容
laravel dusk tearDown() must be compatible with Illuminate\Foundation\Testing\TestCase::tearDown()
public function tearDown()
{
$this->browse(function (Browser $browser) {
$browser->click('#navbarDropdown')
->click('.dropdown-item');
});
parent::tearDown();
}
当我将 tearDown() 方法应用于我的测试时 class 我收到一条错误消息告诉我 the tearDown() must be compatible with Illuminate\Foundation\Testing\TestCase::tearDown()
我做错了什么?
每次我运行测试我都需要登录。我想在 setUp() 方法中登录并在 tearDown 中再次注销,这样我就可以独立执行我的测试了。
这是我的 setUp() 方法
use databaseMigrations;
public function setUp(): void
{
parent::setUp();
$this->seed('DatabaseSeeder');
$this->browse(function (Browser $browser) {
$browser->visit('/admin')
->type('email', 'admin@admin.com')
->type('password', 'admin')
->press('Login');
});
}
setUp() 方法工作得很好。即使我没有向 tearDown() 方法添加任何代码,除了 parent::tearDown();
,我也会收到错误,那么我在 tearDown() 方法中做错了什么?
public function tearDown()
{
parent::tearDown();
}
您在 tearDown()
上缺少 : void
:
public function tearDown(): void
{
parent::tearDown();
}
你 setUp()
是正确的,但是作为父 class 的方法,这两种方法都需要兼容,而忽略 : void
则不是。
每当您看到该错误时,最好检查您正在扩展的 class 的来源。通过继承,即
Illuminate\Foundation\Testing\TestCase.php
/**
* Setup the test environment.
*
* @return void
*/
protected function setUp(): void
{
...
}
...
/**
* Clean up the testing environment before the next test.
*
* @return void
*/
protected function tearDown(): void
{
...
}
public function tearDown()
{
$this->browse(function (Browser $browser) {
$browser->click('#navbarDropdown')
->click('.dropdown-item');
});
parent::tearDown();
}
当我将 tearDown() 方法应用于我的测试时 class 我收到一条错误消息告诉我 the tearDown() must be compatible with Illuminate\Foundation\Testing\TestCase::tearDown()
我做错了什么?
每次我运行测试我都需要登录。我想在 setUp() 方法中登录并在 tearDown 中再次注销,这样我就可以独立执行我的测试了。
这是我的 setUp() 方法
use databaseMigrations;
public function setUp(): void
{
parent::setUp();
$this->seed('DatabaseSeeder');
$this->browse(function (Browser $browser) {
$browser->visit('/admin')
->type('email', 'admin@admin.com')
->type('password', 'admin')
->press('Login');
});
}
setUp() 方法工作得很好。即使我没有向 tearDown() 方法添加任何代码,除了 parent::tearDown();
,我也会收到错误,那么我在 tearDown() 方法中做错了什么?
public function tearDown()
{
parent::tearDown();
}
您在 tearDown()
上缺少 : void
:
public function tearDown(): void
{
parent::tearDown();
}
你 setUp()
是正确的,但是作为父 class 的方法,这两种方法都需要兼容,而忽略 : void
则不是。
每当您看到该错误时,最好检查您正在扩展的 class 的来源。通过继承,即
Illuminate\Foundation\Testing\TestCase.php
/**
* Setup the test environment.
*
* @return void
*/
protected function setUp(): void
{
...
}
...
/**
* Clean up the testing environment before the next test.
*
* @return void
*/
protected function tearDown(): void
{
...
}