tuttti / laravel-operation-test-extension
dev-master
2020-05-13 03:42 UTC
Requires
- illuminate/support: ^7.10
- laravel/dusk: ^6.1
- monolog/monolog: ^2.0
- vlucas/phpdotenv: ^4.1
Requires (Dev)
- phpunit/phpunit: ^9.1
- psy/psysh: @stable
This package is auto-updated.
Last update: 2024-09-13 14:00:04 UTC
README
安装
composer require tuttti/laravel-operation-test-extension
设置
- 1. 在
config/app.php
中添加 ServiceProvider。
'providers' => [ /* * Package Service Providers... */ Tuttti\LaraOTE\LaravelOperationTestExtensionServiceProvider::class, ]
- 2. 为了发布配置,运行 vendor publish 命令。
php artisan vendor:publish --provider="Tuttti\LaraOTE\LaravelOperationTestExtensionServiceProvider"
用法
- 1. 定义页面操作的接口。
./src/LaraOTESample/PageOperations/Contracts/LoginPageOperationsInterface.php
namespace Tuttti\LaraOTESample\PageOperations\Contracts; use Laravel\Dusk\Browser; use Tuttti\LaraOTE\PageOperations\Contracts\PageOperationsInterface; use Tuttti\LaraOTE\UiTestModels\Credintials; interface LoginPageOperationsInterface extends PageOperationsInterface { public function showPage(Browser $browser):void; public function login(Browser $browser, Credintials $credintials):void; }
- 2. 实现接口。
./src/LaraOTESample/PageOperations/LoginPageOperations.php
namespace Tuttti\LaraOTESample\PageOperations; use Laravel\Dusk\Browser; use Tuttti\LaraOTESample\PageOperations\Contracts\LoginPageOperationsInterface; use Tuttti\LaraOTESample\UiTestModels\Credintials; use Tuttti\LaraOTE\PageOperations\Factory\PageOperationsFactory; class LoginPageOperations implements LoginPageOperationsInterface { public function showPage(Browser $browser) { $browser->visit('/login'); } public function login(Browser $browser, Credintials $credintials) { $browser->type('login_id', $credintials["email"]) ->type('password', $credintials["password"]) ->press('login-button') ; } }
-
3. 将接口和实现注册到
PageOperationsFactory
。 -
4. 在你的 dusk-base 浏览器测试中使用它。
$operations = PageOperationsFactory::make(LoginPageOperationsInterface::class); $operations->showPage($browser); $operations->login($browser, new Credintials('aaa@aa.bb', 'pass'));