Node.js 如何为检查响应的http请求编写测试';返回的数据是什么?
在我的Node.js 如何为检查响应的http请求编写测试';返回的数据是什么?,node.js,unit-testing,http,Node.js,Unit Testing,Http,在我的AccountsApiHandler模块中有以下方法,我想编写一个测试,测试帐户是否正确返回。如果我在某个测试中调用此方法,如何检索帐户列表 AccountsApiHandler.prototype.accounts = function (req, res) { var self = this /* * Get list of accounts */ if (req.method === 'GET') { return self.server.acc
AccountsApiHandler
模块中有以下方法,我想编写一个测试,测试帐户是否正确返回。如果我在某个测试中调用此方法,如何检索帐户列表
AccountsApiHandler.prototype.accounts = function (req, res) {
var self = this
/*
* Get list of accounts
*/
if (req.method === 'GET') {
return self.server.accounts.listAccountAsJson()
.pipe(JSONStream.stringify())
.pipe(res);
}
};
下面是我的测试,使用hammock
npm模块生成模拟请求和响应对象。此测试假设现有帐户已在测试的数据库中:
var测试=需要('磁带')
var hammock=require(‘hammock’)
var accountsApiHandler=require('../../handlers/accounts-api')()
当我运行这个测试时,我的
帐户流是空的,因此给我一个帐户列表的空帐户列表。有没有合适的方法从我的AccountsApiHandler.accounts
方法中获取帐户数据?看起来我在上述问题中的实现很接近,但不是像这样流式处理帐户:
accounts
.on('data', function (data) {
accountsList.push(data)
})
.on('error', function (err) {
t.fail(err)
})
.on('end', function () {
console.log("results:", accountsList)
t.equals(accountsList, actualAccounts)
})
}
我需要流式传输响应本身,它也没有data
事件:
accounts
.on('end', function (err, data) {
t.equals(data, actualAccounts)
})
希望这对某人有所帮助。npm网站上有更多文档
accounts
.on('end', function (err, data) {
t.equals(data, actualAccounts)
})