当我执行我的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();
})
})
})
我在列表中找到的第一个国家是德国,而不是法国,但测试仍然通过,我不知道为什么,我做错了什么?
答案 0 :(得分:0)
将您的电话转移至当前测试结束时的done()
,以便它位于res.on('end', ...)
的处理程序中:就在您expect
电话之后。
目前,您告诉Mocha测试在实际结束之前结束,但实际上您希望它只在您获得结果并进行测试后结束。