概述
简介
本指南中的所有示例都将使用 Pest 编写。要使用 Pest 的 Livewire 插件进行测试,可以按照 Pest 文档中关于插件的安装说明进行操作:Livewire plugin for Pest。但是,你也可以轻松地将其适配到 PHPUnit,主要是将 Pest 中的 livewire() 函数替换为 PHPUnit 中的 Livewire::test() 方法。
由于所有 Filament 组件都挂载在 Livewire 组件上,我们到处都在使用 Livewire 测试助手。如果你从未测试过 Livewire 组件,请阅读 Livewire 文档中的本指南。
测试指南
想要查看如何测试面板资源的完整示例?请查看测试资源部分。
如果你想了解测试表格的不同方法,请查看测试表格部分。
如果你需要测试 schema(包括表单和信息列表),请查看测试 schema部分。
如果你想测试操作,包括表格或 schema 中的操作,请查看测试操作部分。
如果你想测试已发送的通知,请查看测试通知部分。
如果你想测试面板中的自定义页面,它们是 Livewire 组件,没有特殊行为,因此你应该访问 Livewire 文档的测试部分。
使用 Filament 时的 Livewire 组件
在测试 Filament 时,了解哪些组件是 Livewire 组件、哪些不是非常有用。有了这些信息,你就知道该将哪些类传递给 Pest 中的 livewire() 函数或 PHPUnit 中的 Livewire::test() 方法。
Livewire 组件的一些示例:
- 面板中的页面,包括资源的
Pages目录中的页面类 - 资源中的关联管理器
- Widget
不是 Livewire 组件的一些类示例:
- 资源类
- Schema 组件
- 操作
这些类都与 Livewire 交互,但它们本身不是 Livewire 组件。你仍然可以测试它们,例如通过调用各种方法并使用 Pest 期望 API 来断言预期行为。然而,最有用的测试将涉及 Livewire 组件,因为它们为用户提供了最佳的端到端测试覆盖。