如何扩展 Laravel Dusk 浏览器?
How can I extend Laravel Dusk Browser?
我希望重写 \Laravel\Dusk\Browser 方法并用我自己的方法扩展它,再加上一些增强功能。这是我到目前为止所做的,但它给了我这个错误:
TypeError: Argument 1 passed to Tests\Browser\SequentialAppTest::Tests\Browser{closure}() must be an instance of Tests\MyBrowser, instance of Laravel\Dusk\Browser given,
called in
/var/www/gtest/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php on
line 67
/var/www/gtest/tests/Browser/SequentialAppTest.php:135
/var/www/gtest/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67
/var/www/gtest/tests/Browser/SequentialAppTest.php:157
文件:tests/MyBrowser.php
<?php
namespace Tests;
class MyBrowser extends \Laravel\Dusk\Browser
{
}
文件:tests/Browser/SequentialAppTest.php
命名空间 Tests\Browser;
use Tests\DuskTestCase;
use Tests\MyBrowser as Browser;
...
class SequentialAppTest extends DuskTestCase
{
....
}
在您的测试或 DuskTestCase
中覆盖 newBrowser()
:
use Tests\DuskTestCase;
use Tests\MyBrowser as Browser;
class SequentialAppTest extends DuskTestCase
{
protected function newBrowser($driver)
{
return new Browser($driver);
}
}
我希望重写 \Laravel\Dusk\Browser 方法并用我自己的方法扩展它,再加上一些增强功能。这是我到目前为止所做的,但它给了我这个错误:
TypeError: Argument 1 passed to Tests\Browser\SequentialAppTest::Tests\Browser{closure}() must be an instance of Tests\MyBrowser, instance of Laravel\Dusk\Browser given,
called in /var/www/gtest/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php on line 67/var/www/gtest/tests/Browser/SequentialAppTest.php:135 /var/www/gtest/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67 /var/www/gtest/tests/Browser/SequentialAppTest.php:157
文件:tests/MyBrowser.php
<?php
namespace Tests;
class MyBrowser extends \Laravel\Dusk\Browser
{
}
文件:tests/Browser/SequentialAppTest.php 命名空间 Tests\Browser;
use Tests\DuskTestCase;
use Tests\MyBrowser as Browser;
...
class SequentialAppTest extends DuskTestCase
{
....
}
在您的测试或 DuskTestCase
中覆盖 newBrowser()
:
use Tests\DuskTestCase;
use Tests\MyBrowser as Browser;
class SequentialAppTest extends DuskTestCase
{
protected function newBrowser($driver)
{
return new Browser($driver);
}
}