Mocha chai-http 响应总是 returns null
Mocha chai-http response always returns null
我正在 Node.js 通过 mocha chai-http 测试服务器响应。
我得到的响应始终为空。但是,当我 运行 定期请求而没有摩卡测试 运行ner 时,一切都很好。
这是服务器代码:
var Babble = { messages: new Array() , users: new Array(),userCount:0 }; //
var http = require('http');
var urlUtil = require('url');
var queryUtil = require('querystring');
var Babble = { messages: new Array() , users: new Array(),userCount:0 }; // Data object to save all chat logs
var server = http.createServer(function(request, response) {
var strData,name,index;
response.setHeader('Access-Control-Allow-Origin', '*');
if (request.method === 'GET') {
var url = urlUtil.parse(request.url);
var data = queryUtil.parse(url.query);
console.log(data.message);
if (!data.message) {
response.writeHead(400);
}
response.end();
} else if (request.method === 'POST') {
var requestBody = '';
request.on('data', function(chunk) {
requestBody += chunk.toString();
});
request.on('end', function() {
var data = queryUtil.parse(requestBody);
strData = JSON.stringify(data);
// Handle different requests
...
response.end(JSON.stringify(Babble));
}
});
});
module.exports = {server,Babble};
这是 mocha chai-http 测试代码:
var module = require('./testedServer');
var assert = require('assert');
var chai = require('chai')
, chaiHttp = require('chai-http');
chai.use(chaiHttp);
describe('Check receiving data from server:', function() {
beforeEach(function() {
module.server.listen(9099);
});
it('Should receive a non-null object containing the chat logs', function(done) {
chai.request('http://localhost:9099')
.post('/')
.send(
'poll0,0/Annonymous.'
).end(function(res){
console.log(res);
assert.equal(res != null,true,"Error: test has failed - server response is null");
done();
});
});
afterEach(function() {
// runs after each test in this block
module.server.close();
});
});
我想我的请求发音有误。
chai.end
使用标准的 err
第一个回调样式。请参阅 chai-http 文档中的 this 示例。
在您的测试代码中,首先包括 err
应该可以解决您的问题。
).end(function(err, res){ // err first callback
就编写像样的最小测试而言,您可能需要至少一个断言(或 it
):
- 错误:例如
assert.equal
- res: res对象的一些属性,例如
res.statusCode
展望未来,有很多关于错误优先回调的内容。开始here简单说明一下
我正在 Node.js 通过 mocha chai-http 测试服务器响应。 我得到的响应始终为空。但是,当我 运行 定期请求而没有摩卡测试 运行ner 时,一切都很好。
这是服务器代码:
var Babble = { messages: new Array() , users: new Array(),userCount:0 }; //
var http = require('http');
var urlUtil = require('url');
var queryUtil = require('querystring');
var Babble = { messages: new Array() , users: new Array(),userCount:0 }; // Data object to save all chat logs
var server = http.createServer(function(request, response) {
var strData,name,index;
response.setHeader('Access-Control-Allow-Origin', '*');
if (request.method === 'GET') {
var url = urlUtil.parse(request.url);
var data = queryUtil.parse(url.query);
console.log(data.message);
if (!data.message) {
response.writeHead(400);
}
response.end();
} else if (request.method === 'POST') {
var requestBody = '';
request.on('data', function(chunk) {
requestBody += chunk.toString();
});
request.on('end', function() {
var data = queryUtil.parse(requestBody);
strData = JSON.stringify(data);
// Handle different requests
...
response.end(JSON.stringify(Babble));
}
});
});
module.exports = {server,Babble};
这是 mocha chai-http 测试代码:
var module = require('./testedServer');
var assert = require('assert');
var chai = require('chai')
, chaiHttp = require('chai-http');
chai.use(chaiHttp);
describe('Check receiving data from server:', function() {
beforeEach(function() {
module.server.listen(9099);
});
it('Should receive a non-null object containing the chat logs', function(done) {
chai.request('http://localhost:9099')
.post('/')
.send(
'poll0,0/Annonymous.'
).end(function(res){
console.log(res);
assert.equal(res != null,true,"Error: test has failed - server response is null");
done();
});
});
afterEach(function() {
// runs after each test in this block
module.server.close();
});
});
我想我的请求发音有误。
chai.end
使用标准的 err
第一个回调样式。请参阅 chai-http 文档中的 this 示例。
在您的测试代码中,首先包括 err
应该可以解决您的问题。
).end(function(err, res){ // err first callback
就编写像样的最小测试而言,您可能需要至少一个断言(或 it
):
- 错误:例如
assert.equal
- res: res对象的一些属性,例如
res.statusCode
展望未来,有很多关于错误优先回调的内容。开始here简单说明一下