当mocha失败时,用mocha测试成功

时间:2015-05-13 08:04:47

标签: mocha

当我执行我的mocha测试脚本时,我有一些事情没有真正得到:

我正在测试大约20个请求,并且一些测试在他们不应该的时候通过。例如,我想检索欧洲的国家,结果将如下:

[ {name:'Germany',
   code:'de'},
  {name:'Spain',
   code:'es'},
...]


describe('get v2/continents/EU', function() {
  it('should return the country name', function(done) {
    options.path = "v2/continents/EU";
    http.get(options, function(res) {
      expect(res.statusCode).to.equal(200);
      var body = '';
      res.on('data', function(chunk) {
        body += chunk;
      });
      res.on('end', function() {
        var json = JSON.parse(body);
        expect(json.result[0].name).to.equal('France'); //This should fail
      });
      done();
    })
  })
})

我在列表中找到的第一个国家是德国,而不是法国,但测试仍然通过,我不知道为什么,我做错了什么?

1 个答案:

答案 0 :(得分:0)

将您的电话转移至当前测试结束时的done(),以便它位于res.on('end', ...)的处理程序中:就在您expect电话之后。

目前,您告诉Mocha测试在实际结束之前结束,但实际上您希望它只在您获得结果并进行测试后结束。