这段时间从前端转后端做 nodejs 项目,借此机会对一些好的实践做一下记录。
主要思想:多写简单测试,少写复杂测试,不要遗漏任何一个测试。
测试可能非常耗时,所以更应该避免过度设计。
并非所有的逻辑都要测试,应专注于最有价值的核心逻辑,质量优于数量。
最佳实践是测试方法的结果而非实现细节。
在编写完测试代码后,若在不改变方法结果的情况下重构实现,此时测试代码应不需要修改。
测试驱动开发,倡导先写测试程序,再编码实现功能,具体概念详见 wiki
以最小实现+优化的方式,可尽量避免过度设计。
一个 JavaScript 测试框架,用于测试中的 mock 和断言。
概念和使用详见 入门 · Jest
Nestjs 中已经内置了 Jest
在启动开发流程前,先明确需求,才能将需求拆解为一个个测试用例,进而完成开发。
其中用户数据格式为:
需求定义完成,接下来开始创建项目
在命令行构建项目:
启动项目:
不出意外的话,一个 web 服务就启动完成了。
由于 nestjs 框架已经集成了 jest 测试框架,所以在初始化的项目中已经可以看到初始化的测试文件了,至此,开始正式的开发流程吧。
数据库应用程序的编写往往从数据库表的建立开始,所以在开始编写项目之前,我们先进行库表的创建,此处以本地 mysql 库为例说明(本地 mysql 大家自行安装)。
连库+创建项目数据库:
项目接入数据库:
至此,项目初始化及连接数据库操作完成,将在下一篇介绍 TDD 的编码流程。