♻️
前端 TDD(测试驱动开发)
  • README
  • 总-课程目标
  • 总-课程安排
  • Coding
    • 第一题:FizzBuzz 数字游戏
      • 什么是 FizzBuzz?
      • 任务 0:练功前的热身
      • FizzBuzz 项目剖析
      • 任务 1:TDD 初体验
      • 任务 2:先利其器
      • 任务 3:再撸一遍
      • FizzBuzz 项目总结
      • 附录 1:Jest 测试基础及要点
      • 附录 2:Testing Library 组件测试基础
    • 第二题:MarsRover 火星车
      • 任务 1:Tasking 任务分解
      • 火星车实战
      • 火星车 Tasking 任务分解
      • 任务 2:MarsRover 实战演练
      • MarsRover Coding 演示
      • 任务 3:MarsRover 练习
      • MarsRover 项目总结
    • 第三题:CommentBox 留言板
      • CommentBox 项目剖析
      • 任务 1:Cypress E2E 测试
      • 任务 2:测试驱动组件单元接口
      • 任务 3:组件级别的快速反馈
      • 任务 4:由外到内的前端 TDD
      • CommentBox 项目总结
    • 第四题:Bookshelf 魔法书架
      • Bookshelf 项目剖析
      • 任务 1:练习 API 契约测试
      • 任务 2:组件化与数据流管理
      • 任务 3:Redux 数据流测试
      • 任务 4:简化 Redux 项目结构
      • Bookshelf 项目总结
      • 附录 1:什么才是真正的 RESTful 架构?
      • 附录 2:【译】Redux 和 命令模式
      • 附录 3:【译】什么是 Flux 架构?(兼谈 DDD 和 CQRS)
    • 第五题:ShoppingCart 购物车
      • ShoppingCart 项目剖析
      • React 哲学:Thinking in React
      • 任务 1:任务分解 - 驱动组件树拆分
      • 任务 2:综合应用 - 驱动组件接口设计
      • 任务 3:综合应用 - 驱动数据流管理
      • 任务 4:综合应用 - 驱动组件样式开发
      • ShoppingCart 项目总结
由 GitBook 提供支持
在本页
  • 副本简介
  • 副本挑战
  • 时长限制
  • 副本奖励
  • BOSS 掉落
  1. Coding

第四题:Bookshelf 魔法书架

上一页CommentBox 项目总结下一页Bookshelf 项目剖析

最后更新于5年前

副本简介

Bookshelf 书架是一个非常常见的真实业务场景。通过对书本(可理解为商品)操作的多次练习,帮助学员掌握 TDD 在前端开发中的运用,养成刻意拆分组件的习惯。

副本挑战

  1. 掌握由外到内的测试驱动开发节奏

  2. 练习前端组件拆分与单向数据流管理

  3. 至少练习 3 遍 Bookshelf 题目

  4. 能在 1 小时内完成 Bookshelf 题目

时长限制

4 小时

总时长

任务 1

任务 2

任务 3

任务 4

任务

API 契约测试

Redux 数据流测试

组件化与数据流管理

简化 Redux 项目结构

4h

1h

1h

1h

1h

副本奖励

  • 集成 Redux,数据 model 层面的测试 redux-saga-test-plan

  • 学习 Jest Mock API 及异步测试方法 (mock() fn() spyOn())

  • API 契约测试,利用 Pact 简化前后端集成开发策略

  • selectors 与 useSelector,最简单的纯 JavaScript 逻辑单测

  • services 层测试,直接 mock 数据返回,API 请求则留给契约测试

  • 完善测试策略,utils,也是最简单的纯 JavaScript 单元测试

BOSS 掉落

Acceptance Test Driven Development with React.epub
验收测试驱动开发介绍(ATDD)
Bookshelf 书架