Node.js mocha集成测试期间未执行请求
在交换API之前,我希望通过集成测试保护客户端(使用API),以确保新API提供与旧API相同的结果,并且客户端仍能按预期工作。因此,我为各自的客户机方法编写了几个集成测试。这些客户端方法使用请求来查询API。Node.js mocha集成测试期间未执行请求,node.js,request,mocha.js,integration-testing,web-api-testing,Node.js,Request,Mocha.js,Integration Testing,Web Api Testing,在交换API之前,我希望通过集成测试保护客户端(使用API),以确保新API提供与旧API相同的结果,并且客户端仍能按预期工作。因此,我为各自的客户机方法编写了几个集成测试。这些客户端方法使用请求来查询API。 然后我用摩卡来执行测试。在测试中,现在似乎根本没有执行请求 我举了一个简单的例子来说明我的问题: var request = require('request'); var assert = require('chai').assert; describe('test', functi
然后我用摩卡来执行测试。在测试中,现在似乎根本没有执行请求 我举了一个简单的例子来说明我的问题:
var request = require('request');
var assert = require('chai').assert;
describe('test', function(){
it('request-test', function(done){
var responseBody;
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
responseBody = body;
}
});
done();
assert.notEqual(responseBody, undefined);
});
});
在本例中,永远不会执行console.log,并且在断言中测试总是失败 尝试将断言和done()调用放在回调中。尝试将断言和done()调用放在回调中。done()的位置有问题。
done()
用于测试异步代码
在回调中使用它来正确执行测试用例
var request = require('request');
var assert = require('chai').assert;
describe('test', function(){
it('request-test', function(done){
var responseBody;
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
responseBody = body;
assert.notEqual(responseBody, undefined);
done();
}
});
});
});
done()
的位置有问题done()
用于测试异步代码
在回调中使用它来正确执行测试用例
var request = require('request');
var assert = require('chai').assert;
describe('test', function(){
it('request-test', function(done){
var responseBody;
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
responseBody = body;
assert.notEqual(responseBody, undefined);
done();
}
});
});
});