本指南中的所有示例都将使用Pest编写。要使用 Pest 的 Livewire 测试插件,你可以按照 Pest 文档中关于插件的安装说明进行操作:Pest 的 Livewire 插件。但是,你可以轻松地将其应用于 PHPUnit,主要是通过将 Pest 的 livewire() 函数替换为 Livewire::test() 方法。
由于所有 Filament 组件都挂载到一个 Livewire 组件上,我们只是到处使用 Livewire 测试助手。如果您以前从未测试过 Livewire 组件,请阅读 本指南 来自 Livewire 文档。
正在寻找关于如何测试面板资源的完整示例?请查阅测试资源部分。
如果您想了解测试表的各种可用方法,请查看测试表部分。
如果你需要测试一个 schema,其中包含表单和信息列表,请查看 测试 schema 部分。
如果您想测试一个动作,包括存在于表或模式中的动作,请查阅测试动作部分。
如果您想测试您已发送的通知,请查阅 测试通知 部分。
如果您想在面板中测试自定义页面,它们是 Livewire 组件,不具备特殊行为,因此您应该查阅 Livewire 文档的 测试 部分。
在测试 Filament 时,了解哪些组件是 Livewire 组件以及哪些不是,是很有用的。有了这些信息,你就能知道在 Pest 中应该将哪些类传递给 livewire() 函数,或者在 PHPUnit 中传递给 Livewire::test() 方法。
Livewire 组件的一些示例包括:
Pages 目录中的页面类一些不属于 Livewire 组件的类的例子有:
这些类都与 Livewire 交互,但它们本身不是 Livewire 组件。你仍然可以测试它们,例如,通过调用各种方法并使用 Pest 期望 API 来断言预期行为。然而,最有用的测试将涉及 Livewire 组件,因为它们提供了最佳的用户体验端到端测试覆盖。