Node.js 单元测试快速应用程序
目前正在尝试学习如何为Express应用程序编写单元测试(不是集成测试/PhantomJS) 是否有一种方法可以将路由拆分为可测试的方法,这些方法返回.json数据,由实际用户呈现:Node.js 单元测试快速应用程序,node.js,unit-testing,express,pug,Node.js,Unit Testing,Express,Pug,目前正在尝试学习如何为Express应用程序编写单元测试(不是集成测试/PhantomJS) 是否有一种方法可以将路由拆分为可测试的方法,这些方法返回.json数据,由实际用户呈现: app.get('/route', function(req, res, next) { res.render('template', { data: data }); }); 在我读到的所有内容中,他们都在测试JSON输出,因为他们以RESTful的方式设计应用程序,而这些入门教程中的大多数都是
app.get('/route', function(req, res, next) {
res.render('template', {
data: data
});
});
在我读到的所有内容中,他们都在测试JSON输出,因为他们以RESTful的方式设计应用程序,而这些入门教程中的大多数都是在服务器上完全模板化/呈现的(我认为这并不坏),将html返回给客户端。但是,这是我不理解的部分,如何分离和测试。
下一步是学习主干,因此应用程序只是抛出JSON,但就目前而言,是否有任何建议或完整教程的链接
非常感谢。有几种方法可以解决这个问题
- 您可以分离标准站点或JSON响应的
之间的路由/api/.
- 您可以通过检查
来检测请求接受什么,以确定请求接受什么并输出json或呈现htmlreq.accepts
- 您可以编写一个执行上述检查的输出中间件,但中间件堆栈中之前的中间件应该调用
并传递next()
并相应地处理req.responseData
JSON,呈现或输出req.responseData
accept
标题或查询正确的url,但JSON输出将允许您测试api,而无需使用html解析器来解析html。如果您想测试HTML的呈现方式,可以使用cheerio
或phantomjs,但我会尽量避免
至于主干,有很多教程,这是你的起点。你找到这个问题的答案了吗?