WebUI 部分基于 Go-App 编译为 WASM 在浏览器中运行,单元测试和自动化调试存在以下难点:
| 测试类型 | 工具 | 覆盖范围 |
|---|---|---|
| 状态逻辑 | testing | 字段、方法逻辑 |
| 组件生命周期 | NewClientTester | OnMount, OnNav, 事件处理 |
| UI 渲染 | TestMatch | DOM 结构验证 |
| HTTP Handler | httptest | 路由、静态文件、SPA fallback |
| E2E | Playwright | 完整用户流程 |
func TestSearchPageOnMount(t *testing.T) {
page := &SearchPage{}
disp := app.NewClientTester(page)
defer disp.Close()
disp.Nav(&url.URL{Path: "/search"})
disp.Consume()
// 验证状态
}
err := app.TestMatch(page, app.TestUIDescriptor{
Path: app.TestPath(0),
Expected: app.Div().Class("search-page"),
})
page.Goto("http://localhost:8899")
page.Locator(".hero-search input").Fill("golang")
page.Locator(".hero-search input").Press("Enter")
还没有人回复