我正在尝试为节点应用程序编写测试用例,它使用mocha作为测试框架。
test.js
var register = require('../routes/users');
var request = require('request');
var baseUrl = 'http://localhost:5000';
describe('registerUser()', function() {
it('check email is already registered', function (done) {
request.post({uri:baseUrl+'/register', form :{
username: 'test',
email: 'test@test.com'
}}, function (e, res, body) {
res.should.have.property('statusCode', 201);
res.should.have.property('regErr', 'This email is already taken!');
})
});
})
regErr
在渲染时作为函数registerUser
中的参数给出。我希望参数regErr
将被设置为响应的属性,并且可以进入测试阶段。
请在github中查看我的registerUser function。
我正在尝试为此函数创建一个测试用例。
上面的代码在测试用例中获取的响应中没有名为regErr
的属性。
如何更正渲染参数也可以作为响应属性?
我需要更改实际功能registerUser
才能获得此功能吗?如果是这样,我怎么能实现这个目标呢?
答案 0 :(得分:0)
执行HTTP请求时,将使用三个参数调用回调函数:
因此,regErr在body变量中。而且,由于您正在渲染HTML页面,因此您必须自己解析身体才能找到它。一种可能的解决方案是渲染JSON并在生成的主体缓冲区上使用JSON.parse()。