Node.js mocha集成测试期间未执行请求

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

在交换API之前,我希望通过集成测试保护客户端(使用API),以确保新API提供与旧API相同的结果,并且客户端仍能按预期工作。因此,我为各自的客户机方法编写了几个集成测试。这些客户端方法使用请求来查询API。
然后我用摩卡来执行测试。在测试中,现在似乎根本没有执行请求

我举了一个简单的例子来说明我的问题:

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();   
          }                   
      });
   });
});