gpt4 book ai didi

php - laravel 黄昏 tearDown() 必须与 Illuminate\Foundation\Testing\TestCase::tearDown() 兼容

转载 作者:行者123 更新时间:2023-12-04 01:31:51 30 4
gpt4 key购买 nike

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


parent::tearDown();
}

当我将 tearDown() 方法应用于我的测试类时,我收到一条错误消息,告诉我 tearDown() 必须与 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() 是正确的,但是作为父类的方法,这两种方法都需要兼容,而省略 : 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
{
...
}

关于php - laravel 黄昏 tearDown() 必须与 Illuminate\Foundation\Testing\TestCase::tearDown() 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60837159/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com