本课程主要内容是什么?
了解本课程你将学到什么,以及不应期待什么。
测试驱动开发
测试驱动开发(TDD)是一种减少不确定性的艺术,它让你在编写代码的瞬间就能对自己的代码充满信心。这是通过事先对代码做出几个断言来实现的。这种前期准备建立了一个短小而令人满足的反馈循环:一旦你写完代码,测试就会立刻显示为绿色。之后,这些测试将一直保留,作为防止回归问题的守护者。
本课程内容
这是一门关于 React 的课程。但它不同于任何其他 React 课程或书籍。这是一门教你以愉悦方式编写 React 代码的课程。你可能会学到一些关于 React 的新知识,但这并非我的目标。我的目标是帮助你写出更好的代码,并在这个过程中获得更多乐趣。
在 **使用 Jest 进行测试驱动开发** 章节中,你将体验测试驱动开发这一编程方法论——它利用测试在开发过程中形成即时反馈循环。你将使用快速高效的 Jest 测试框架。
**与 VS Code 的集成工具链** 将带你了解一些强大的开发工具:功能强大的编辑器 VS Code;代码美化双剑合璧 ESLint 和 Prettier;以及 Wallaby.js。你将亲身体验编码时即时反馈带来的奇妙感受。
接着,在 使用 Enzyme 测试 React 章节中,你将开始编写 React 组件,并使用 Enzyme 库对其进行测试。你将熟悉 Babel 工具,并以 TDD 方式构建一个复杂的组件,实现 100% 的代码覆盖率。
使用 Styled-Components 在 JavaScript 中进行样式设计 聚焦于样式。你将使用 styled-components 库为 React 组件增添视觉效果。所有样式都以 JavaScript 形式定义,使其易于测试。你将开始使用 Jest 最强大的功能之一:快照测试。同时,你还将配置 Webpack,以便在浏览器中查看你的工作成果。
在 使用高阶组件重构 章节中,你将学习一些重要的 React 组件重构技巧。你将把功能模块提取为高阶组件(HOC),促进代码复用,同时让核心组件保持简洁、易于测试。你还将借助 React Devtools 深入分析组件结构。
最后,在 **持续集成与协作** 章节中,你将掌握分享你所构建项目的全部工具。你将在 Travis CI 上运行测试,使用 Husky 强制执行项目规范,并借助 Storybook 创建美观且交互式的文档。
本课程不包含的内容
本课程不是 JavaScript 入门教程。如果你是语言新手,或者只是想复习一下,可以轻松找到一系列优秀的 JavaScript 入门课程。本课程中的大部分代码都会使用 ECMAScript 6(也称为 ES6 或 ES2015)标准引入的新特性。这里有一个快速测试:
1const stringifyAll = (...args) => args.map(String);
对 React 有一定了解会有帮助,但并非必需。我们会对每个遇到的 React 概念提供简要说明。
本课程中所有的测试都是单元测试,意味着 JavaScript 代码是在隔离状态下被测试的。我们不会涉及集成测试(例如,代码与数据库交互的测试)或功能测试(例如,使用 Selenium 等工具在浏览器中模拟用户操作的测试)。这类测试的实现、运行和维护成本远高于单元测试。
最佳实践是先通过单元测试达到较高的代码覆盖率,再根据需要逐步增加更高级别的测试层次。