提升你的 React 测试技能,包括 Redux Saga、React Router 和受认证保护的路由!
你将会学到的
- 使用 redux-saga-test-plan 集成和单元测试来测试 Redux Sagas
- 创建一个自定义的 React Testing Library `render`方法,用于 Redux 存储和 React Router 历史记录
- 测试 React Router 导航,包括带有 URL 参数和查询参数的路由
- 测试使用 React Router 的 React 应用中的受认证保护的路由
- 使用 Mock Service Worker 在测试期间模拟网络响应
- 使用 Jest 的 `.each()`方法来参数化测试(使用不同数据多次运行相同的测试)
要求
- 熟悉 React 和 React Hooks(包括自定义 Hooks 和内置 Hooks 如 `useEffect`)
- 具有使用 Jest 编写测试的经验
- 基本熟悉 React Testing Library(特别是 `render` 和 `screen`方法)
- 使用 Redux 和 Redux Saga(仅限 Saga 部分)
- 使用 React Router(仅限 React Router 和受认证保护的路由部分)
- 熟悉 TypeScript(本课程完全使用 TypeScript 编写和教授)
说明
如果您是一名已经掌握了 React 测试基础知识的开发者,并希望进一步提升自己的技能,那么本课程将深入探讨如何为复杂的 React 应用进行测试。
测试 Redux Saga、React Router 或两者
课程中的 Redux Saga 和 React Router 部分是完全独立的。您可以根据自己的需求选择从哪一部分开始学习,并跳过与您的应用无关的部分。
测试现有应用
本课程提供的应用已经构建完成,因此您将对一个使用了 Redux Saga 和 React Router(包括受认证保护的路由)的现有应用进行测试。为了增加乐趣,这个应用是一个为虚拟乐队售票的音乐场馆,其中包含了虚构的乐队名称、随机生成的乐队描述和照片。
redux-saga-test-plan
使用 redux-saga-test-plan 库来测试 Redux Sagas,这是一个强大的模块,允许灵活的集成测试和精确的单元测试。课程涵盖了 provide()方法,用于静态和动态效果的模拟。
React Router
课程创建了一个自定义的 Testing Library render 方法,用于编写既可以断言页面行为也可以断言 React Router history 对象的测试。测试的路由包括 URL 参数和查询参数,以及受认证保护的路由流程(包括从历史记录中移除登录页面)。Mock Service Worker 为服务器调用提供模拟数据。
Jest 的 test.each()
在 Redux Saga 部分和 React Router 部分,课程将教授如何使用 Jest 的 test.each()方法来参数化测试(即使用不同的数据多次运行相同的测试)。
TypeScript
遵循现代 JavaScript 的最佳实践,本课程的所有代码都是通过 TypeScript 进行类型化的。
经验丰富的讲师
本课程的讲师自 2018 年起就在 Udemy 上编写课程,她有着出色的授课记录,课程内容清晰易懂。她喜欢通过问答与学生互动,并以平和、支持的教学风格著称。
此课程面向哪些人
有经验的 React 开发者,希望扩展他们的测试工具箱。