2017-08-14 7 views
-1

私は非同期関数をテストしようとしました。しかし、mochaは常にタイムアウトエラーをログに記録します。私はmocha test.jsを実行モカエラー:2000msのタイムアウトを超えました。このテストでdone()コールバックが呼び出されていることを確認してください。

// iframe.js 
var iframe_client_util = {}; 
iframe_client_util.findByKeyFrame = function (keyFrame, cb) { 
    ModelIframeClient.find({key_frame: keyFrame}).exec(function (err, rs) { 
     if (err) return cb(err, null); 

     cb(null, rs); 
    }); 
}; 



// test.js 
var assert = require("assert"); 
var iframe_util = require("./iframe"); 
describe('1. _checkAuthorization', function() { 
    it("Using setTimeout to simulate asynchronous code!", function (done) { 
     iframe_util.findByKeyFrame("598ad74b1ca8870b0072b6e9", function (err, result) { 
      assert.equal(true, true); 
      done(); 
     }); 
    }); 
}); 

その後モカログこのエラー:

Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.

私は、この文書に従ってください:https://mochajs.org/#asynchronous-code

+1

このテストは2000msを超えているようです。おそらく、偽の非同期関数をテストするでしょうか? – evolutionxbox

+0

@evolutionxbox 'iframe_util.findByKeyFrame'は「偽の非同期関数」ですか? –

答えて

0

この問題は解決しました。私はmongoDBに接続していない、iframe_util.findByKeyFrame関数を実行できません。それはmongoose.connect()が必要です。前に説明します。

+0

あなた自身の回答をここで削除すると、質問を削除できるはずです。それはコミュニティに「この質問を閉じる」ことを求めるよりも速い。 – Louis

0

各テストのタイムアウトをthis.timeout(x);に設定するか、またはmochaを呼び出してタイムアウト値をmocha --timeout xとして指定することができます。ここで、xはタイムアウト量です。

var assert = require("assert"); 
var iframe_util = require("./iframe"); 
describe('1. _checkAuthorization', function() { 
    it("Using setTimeout to simulate asynchronous code!", function (done) { 
     this.timeout(x); // x is timeout amount 
     iframe_util.findByKeyFrame("598ad74b1ca8870b0072b6e9", function (err, result) { 
      assert.equal(true, true); 
      done(); 
     }); 
    }); 
}); 
+1

'this.timeout(3000);を設定すると' Error:3000msのタイムアウトを超えました。このテストでdone()コールバックが呼び出されていることを確認してください。なぜか分からない。 –

+0

より大きなタイムアウトを試してください –

+1

私はより大きなタイムアウトで試しました。しかし何も変わっていない。 'エラー:300000msのタイムアウトを超えました。このテストでdone()コールバックが呼び出されていることを確認してください。 ' –

関連する問題

 関連する問題