该页面介绍了 React Router 中使用的测试基础架构。它解释了如何创建测试夹具,使用 Playwright 与其交互,以及测试各种场景,例如表单提交、数据加载、错误边界和服务器端渲染。
React Router 的集成测试使用 Playwright 来验证跨不同浏览器和环境的功能。测试基础架构的核心是创建夹具应用程序并与之交互,无论是否启用了 JavaScript。
来源: integration/helpers/create-fixture.ts47-201 integration/helpers/create-fixture.ts210-358
测试基础架构的核心是 createFixture 函数,它会创建一个带有指定文件的临时应用程序
来源: integration/helpers/create-fixture.ts362-409 integration/helpers/create-fixture.ts410-451
典型的测试设置如下所示
来源: integration/form-test.ts54-503 integration/defer-test.ts46-538
React Router 测试会在启用和禁用 JavaScript 的情况下运行,以确保应用程序在两种环境中都能正常工作
来源: integration/form-test.ts509-519 integration/resource-routes-test.ts141-148
对于 Vite 的测试,React Router 提供了额外的助手
来源: integration/helpers/vite.ts370-427 integration/vite-dev-test.ts16-452
表单测试验证表单提交和数据处理
测试涵盖
来源: integration/form-test.ts522-583 integration/form-test.ts587-1349
数据加载测试验证加载器执行和数据获取
测试涵盖
来源: integration/transition-test.ts223-239 integration/defer-test.ts551-640
错误边界测试验证错误是否被正确捕获和显示
测试验证
来源: integration/error-boundary-test.ts160-272 integration/error-boundary-test.ts306-411
测试返回非 HTML 响应的路由
测试验证
来源: integration/resource-routes-test.ts150-269 integration/resource-routes-test.ts193-269
Playwright 已配置为跨多个浏览器运行测试
来源: integration/playwright.config.ts11-54
测试文件根据功能进行组织
integration/*.test.ts - 特定功能的测试文件integration/helpers/*.ts - 测试的辅助工具.tmp/integration/测试以不同的服务器模式运行
来源: integration/resource-routes-test.ts132 integration/error-boundary-test.ts296-299
要报告 Bug,您可以使用 Bug 报告模板
来源: integration/bug-report-test.ts106-122
可以使用 npm 脚本运行测试
您可以添加 --watch 以便在文件更改时重新运行测试。
来源: integration/bug-report-test.ts40-50
这个测试基础架构允许在不同环境和场景下对 React Router 进行全面测试,确保该库在各种实际情况中都能正常工作。