laravel dusk tearDown () должен быть совместим с Illuminate \ Foundation \ Testing \ TestCase :: tearDown () - PullRequest
2 голосов
/ 24 марта 2020
public function tearDown()
    {
        $this->browse(function (Browser $browser) {
            $browser->click('#navbarDropdown')
                    ->click('.dropdown-item');
        });


        parent::tearDown();
    }

Когда я применяю метод tearDown () к своему тестовому классу, я получаю сообщение об ошибке 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();
    }

1 Ответ

1 голос
/ 24 марта 2020

Вы пропускаете : void на tearDown():

public function tearDown(): void
{
  parent::tearDown();
}

У вас есть setUp() правильный, но оба метода, как метод родительского класса, должны быть совместимы и пропустить : void не.

Каждый раз, когда вы видите эту ошибку, лучше всего проверить источник расширяемого вами класса. По наследству это

Подсветка \ 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
{
  ...
}
...