应用场景
在node项目中要想实现正确的api测试需要在项目启动正常的情况下进行测试,测试之后我们又需要将项目关闭,整个流程走下了踩了不少坑,在这里分享下我的最终解决方案(项目链接在文末)。
背景准备
- 一个可运行的node项目
- 该node项目中接口测试在项目启动环境下运行正常
主要步骤
1.测试中引入node项目入口文件
首先需要在测试代码头部node项目入口文件,也就是在执行测试用例之前通过入口文件node项目就会被启动。
let start = require('../bin/start')
2.执行测试
执行正常的api测试。
3.实例对象导出
在关闭项目服务时我们需要创建这个项目服务的实例对象,也就是以下这个对象
let server = http.createServer(app)
要想关闭项目我们需要使用到这个对象的close方法,要想在测试文件中获得这个对象我们需要将这个对象导出。
exports = module.exports = server
4.使用after钩子函数触发关闭项目动作
测试用例执行完毕,如有after钩子函数会最后执行这个函数。我们可以在这个函数中愉快滴关闭项目了。
after(() => start.close())
注意
以上提到的server对象是我在入口文件中定义并且导出的,因此可以直接在测试文件中require
并在after钩子函数中使用。以上只展示了我的关键代码和思路,如果没看明白可以直接点击下面的链接看看完整的功能实现。