♻️
前端 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 提供支持
在本页
  • 组件功能
  • 功能 1:基础评论框
  • 功能 2:留言列表
  • 功能 3:嵌套评论
  • 功能 4:回复框
  • 技能要求
  • 任务拆解
  1. Coding
  2. 第三题:CommentBox 留言板

CommentBox 项目剖析

上一页第三题:CommentBox 留言板下一页任务 1:Cypress E2E 测试

最后更新于5年前

CommentBox 留言板是一个非常常见的 UI 组件。评论组件可用于对事物的讨论,例如页面、博客文章、问题等等,对网站内容的反馈、评价和讨论。

组件功能

让我们渐进式得来迭代一个留言板组件,以 YouTube 为例:

功能 1:基础评论框

一个最基本的评论框组件,带有作者头像、文本输入框,以及取消或评论操作按钮。

功能 2:留言列表

多个评论能够显示列表,并且包含列表数量和排序,并且每一条评论可以进行点赞或踩的操作。

功能 3:嵌套评论

评论可以嵌套,并且可以再次回复,保留 2 个层级,或可以支持无限层级的嵌套。

功能 4:回复框

回复评论框组件需要相同样式,想一想怎么复用呢?当然也需要支持自定义回复框。

技能要求

  1. IDE 的快捷键操作,充分利用代码生成

  2. 用 Cypress 编写 E2E 测试,驱动出组件拆分

  3. 用 Jest 编写组件单元测试,驱动组件接口设计

  4. 用 Storybook 验证组件样式,穷举 UI Stories

  5. 保持!刻意练习的节奏,重复练习

任务拆解

本项目分为 4 个任务:

  • 任务 1:Cypress E2E 测试

  • 任务 2:测试驱动组件单元接口

  • 任务 3:组件级别的快速反馈

  • 任务 4:由外到内的前端 TDD