laravel dusk tearDown() must be compatible with Illuminate\Foundation\Testing\TestCase::tearDown()

随声附和 提交于 2020-04-14 07:23:08

问题


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


        parent::tearDown();
    }

When I apply the tearDown() method to my test class I get an error telling me the tearDown() must be compatible with Illuminate\Foundation\Testing\TestCase::tearDown() What am I doing wrong?

Every time I run a test I need to login. I want to login in the setUp() method and the log out again in the tearDown, so I can execute my tests independently.

This is my setUp() method

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');
        });
    }

The setUp() method works just fine. Even when I don't add any code to the tearDown() method, except the parent::tearDown();, I get an error, so what am I doing wrong in my tearDown() method?

public function tearDown()
    {

        parent::tearDown();
    }

回答1:


You are missing the : void on tearDown():

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

You have setUp() correct, but both methods, as method of the parent class, need to be compatible and omitting the : void isn't.

Any time you see that error, it's best to check the source of the class you're extending. By inheritance, that is

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


来源:https://stackoverflow.com/questions/60837159/laravel-dusk-teardown-must-be-compatible-with-illuminate-foundation-testing-te

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!