laravel黄昏tearDown()必须与Illuminate\Foundation\Testing\TestC


public function tearDown()
{
$this->browse(function (Browser $browser) {
$browser->click('#navbarDropdown')
->click('.dropdown-item');
});

parent::tearDown();
}

当我将tearDown((方法应用于我的测试类时,我收到一个错误,告诉我the tearDown() must be compatible with IlluminateFoundationTestingTestCase::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(),但作为父类的方法,这两个方法都需要兼容,而省略: void则不然。

每当您看到该错误时,最好检查正在扩展的类的源代码。通过继承,这就是

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
{
...
}

最新更新