2016-05-28 10 views
0

私は明らかにモカには新しいです。私の理解からドキュメントを読み、これをグーグル後に動作するはずですが、それはありません:ノードmocha非同期フックが機能していませんか?

describe("Check before", function(){ 

    var beforeCalled = false; 
    before(function(){ 
     setTimeout(function() { 
      beforeCalled = true; 
      done(); 
     }, 150); 
    }); 

    it("should run after before called", function(){ 
     expect(beforeCalled).to.equal(true); 
    }) 
}) 

it部分が終了する「前に」のため待機していないと呼ばれています。たぶん私は間違ったドキュメントを読んだり、何かが不足しているかもしれません。

洞察力があれば助かります。

答えて

1

mochaが待機するためには、doneコールバックが関数シグネチャに含まれている必要があります。

before(function(done){ 
    setTimeout(function() { 
     beforeCalled = true; 
     done(); 
    }, 150); 
}); 

私は混合同期および非同期のテストがある場合、常にdoneを使用しての習慣になってきました。 Mochaは、itの非同期の1つを忘れた場合には、何もテストが失敗しなかったかのように終了することができます。done

+0

ああ、私はそれを逃したとは思えません。 URGH。多くの時間が無駄になってしまった。サンプルコードをもっと詳しく見る必要がある:/ ...ありがとう! –

+0

私はあなたの痛みを知っています! – Matt

関連する問題