从 2014 年末开始开发的一个互联网金融项目终于在今年三月份上线了,这是一个 Node.js 编写的 Web 服务,但上线仅仅是个开始,之后的半年时间我们仍在这个项目上进行着密集地开发。就像2014 年度的技术小结中提到的,2014 一整年我都在进行有关自动测试的实践,经过几个项目的积累,这个项目从头至尾都有着覆盖完整的自动测试,我所有的调试工作也都是借助自动测试完成的,我甚至没有在自己的电脑上运行过这个项目的前端页面。因为路由层面受业务影响很大,经常修改一些功能的行为,所以后来大部分测试都是针对 Model 层面的单元测试。这个项目使用了一种「以数据结构为核心」的设计,所谓数据结构就是一个 JavaScript 的 Object, 对应着数据库中数据表的各个字段,这些代表着业务实体的 Object 在项目中的各个函数之间传递。绝大部分函数的参数和返回值都是这种 Object, 它们在这些 Object 上获得或修改数据,并将这些 Object 与数据库同步,即使需要传递额外的数据,也是将数据作为属性附加到相关的 Object 上。可以说这是一种非常 JavaScript 的风格,因为这些 Object 非常近似于数据库中的一行记录,所以在单元测试中很容易构造,非常大地简化了单元测试中「构造特定环境」的这个步骤 —— 函数的输入和输出都是特定结构的 Object, 这对于 Jav
...
继续阅读
(10)