laravel dusk 宏抛出的 BadMethodCallException
BadMethodCallException thrown by laravel dusk macro
我在 app/Providers/DuskServiceProvider
文件中定义了以下宏,但 dusk 抛出 BadMethodCallException:
Browser::macro('logoutOfWave', function () {
$this->visit(env('DUSK_URL'))
->script("localStorage.clear()");
$this->visit(env('DUSK_URL'));
return $this;
});
我正在 dusk 测试中使用它:
public function testUnauthedUserIsRedirectedToLogin()
{
$this->browse(function (Browser $browser) {
$browser->logoutOfWave()->visit(env('DUSK_URL') . '/systems/create')->assertPathIs('/login');
});
}
这会产生以下错误:
1) Tests\Browser\AddSystemsTest::testUnauthedUserIsRedirectedToLogin
BadMethodCallException: Call to undefined method [logoutOfWave].
/var/www/html/vendor/laravel/dusk/src/Browser.php:484
/var/www/html/tests/Browser/AddSystemsTest.php:20
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67
/var/www/html/tests/Browser/AddSystemsTest.php:21
我已将服务提供商添加到 config/app.php
文件中以进行注册。不知道为什么找不到宏?
据我所知,在 运行 测试时没有加载服务提供商。我已将浏览器宏移动到 DuskTestCase.php
文件中,现在它是 运行
我在 app/Providers/DuskServiceProvider
文件中定义了以下宏,但 dusk 抛出 BadMethodCallException:
Browser::macro('logoutOfWave', function () {
$this->visit(env('DUSK_URL'))
->script("localStorage.clear()");
$this->visit(env('DUSK_URL'));
return $this;
});
我正在 dusk 测试中使用它:
public function testUnauthedUserIsRedirectedToLogin()
{
$this->browse(function (Browser $browser) {
$browser->logoutOfWave()->visit(env('DUSK_URL') . '/systems/create')->assertPathIs('/login');
});
}
这会产生以下错误:
1) Tests\Browser\AddSystemsTest::testUnauthedUserIsRedirectedToLogin
BadMethodCallException: Call to undefined method [logoutOfWave].
/var/www/html/vendor/laravel/dusk/src/Browser.php:484
/var/www/html/tests/Browser/AddSystemsTest.php:20
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67
/var/www/html/tests/Browser/AddSystemsTest.php:21
我已将服务提供商添加到 config/app.php
文件中以进行注册。不知道为什么找不到宏?
据我所知,在 运行 测试时没有加载服务提供商。我已将浏览器宏移动到 DuskTestCase.php
文件中,现在它是 运行