0
這是令人沮喪的令人沮喪的。當存在相鄰測試時,摩卡異步測試運行兩次
我有以下的測試夾具:
describe('#post', function(){
var options,
bodyContent,
bodyWriter;
beforeEach(function(){
// setup common objects ...
});
it('should have request body', function(done){
httpHelper.post(options, bodyWriter, function(err, data){
should.not.exist(err);
should.exist(requestData.body);
requestData.body.should.eql(bodyContent);
done();
});
});
// ...
});
現在,這只是正常 - 在這裏我補充另外一個測試的權利,直到點:
it('should contain path from options arg', function(done){
httpHelper(options, bodyWriter, function(err, data){
should.not.exist(err);
requestData.options.path.should.eql(options.path);
done();
});
});
現在,當我運行的夾具,我得到以下:
http
#post
✓ should require options
✓ should have body
1) should have body
✓ should contain path from options arg
我不知道爲什麼這個測試運行兩次。有什麼想法嗎?
如果''done'提供''應該有body''(或'should have body'' ???)測試會被調用兩次,測試看起來會運行兩次。如果你傳遞給'httpHelper'的回調在某處被註冊了,並且這個註冊在測試之間仍然存在,那麼當你的第二個測試執行時,第一個和第二個測試中的回調將被執行。 – Louis 2014-10-01 23:18:36
這個線索完全幫助我發現問題。將張貼導致問題的代碼。 – 2014-10-01 23:41:18