christophrumpel / missing-livewire-assertions
此软件包添加缺失的 Livewire 测试断言。
Requires
- php: ^8.1
- illuminate/support: ^10.0|^9.0|^11.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.2|^7.4
- livewire/livewire: ^3.0
- orchestra/testbench: ^8.0|^7.4|^9.0
- pestphp/pest: ^2.34
- phpunit/phpunit: ^9.3|^10.5
- spatie/laravel-ray: ^1.9
README
此软件包添加缺失的 Livewire 测试断言
此软件包添加了一些我测试 Livewire 应用程序时缺失的漂亮的新 Livewire 断言。如果您想了解更多关于为什么我需要它们的信息,请查看我的博客文章。
➡️ 此软件包的 2.0
版本仅支持 Livewire 3
。请使用此软件包的较低版本用于其他 Livewire 版本。
安装
您可以通过 composer 安装此软件包
composer require christophrumpel/missing-livewire-assertions
使用方法
新断言会自动添加,因此您可以立即使用它们。
检查 Livewire 属性是否连接到 HTML 字段
Livewire::test(FeedbackForm::class) ->assertPropertyWired('email');
它会在组件的视图文件中查找类似 wire:model="email"
的字符串。它也会检测到类似 wire:model.live="email"
、wire:model.lazy="email"
、wire:model.debounce="email"
、wire:model.lazy.10s="email"
或 wire:model.debounce.500ms="email"
的变体。
检查 Livewire 方法是否连接到 HTML 字段
Livewire::test(FeedbackForm::class) ->assertMethodWired('submit');
它会在组件的视图文件中查找类似 wire:click="submit"
的字符串。
检查 Livewire 魔法动作是否连接到 HTML 字段
Livewire::test(FeedbackForm::class) ->assertMethodWired('$toggle(\'sortAsc\')');
检查通用 Livewire 方法是否连接到 HTML 字段
Livewire::test(FeedbackForm::class) ->assertMethodWiredToAction('mouseenter', 'enter');
它会在组件的视图文件中查找类似 wire:mouseenter="enter"
的字符串。请注意,它也可以查找任何事件,如 wire:keydown
或 wire:custom-event
。
它会查找类似 wire:click="$refresh"
、wire:click="$toggle('sortAsc')
、$dispatch('post-created')
等字符串,以及所有其他魔法动作。在测试魔法动作时,您必须像上面那样转义单引号。
检查 Livewire 方法是否连接到 HTML 表单
Livewire::test(FeedbackForm::class) ->assertMethodWiredToForm('upload');
它会在组件的视图文件中查找类似 wire:submit.prevent="upload"
的字符串。
检查 Livewire 方法是否连接到特定的 JavaScript 事件
Livewire::test(FeedbackForm::class) ->assertMethodWiredToEvent('setValue', 'change');
它会在组件的视图文件中查找类似 wire:change.debounce.150ms="setValue"
的字符串。
您也可以检查没有附加修饰符的操作
Livewire::test(FeedbackForm::class) ->assertMethodWiredToEventWithoutModifiers('reset', 'keyup');
这将匹配 wire:keyup="reset"
,但不会匹配 wire:keyup.escape="reset"
。您可以使用以下方法匹配
Livewire::test(FeedbackForm::class) ->assertMethodWiredToEventWithoutModifiers('reset', 'keyup.escape');
检查 Livewire 组件是否包含另一个 Livewire 组件
Livewire::test(FeedbackForm::class) ->assertContainsLivewireComponent(CategoryList::class);
您也可以使用组件标签名称
Livewire::test(FeedbackForm::class) ->assertContainsLivewireComponent('category-list');
检查 Livewire 组件是否包含 Blade 组件
Livewire::test(FeedbackForm::class) ->assertContainsBladeComponent(Button::class);
您也可以使用组件标签名称
Livewire::test(FeedbackForm::class) ->assertContainsBladeComponent('button');
检查一个字符串是否出现在另一个字符串之前
Livewire::test(FeedbackForm::class) ->assertSeeBefore('first string', 'second string');
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
请参阅我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可证
麻省理工学院许可证(MIT)。请参阅许可证文件以获取更多信息。