2017-07-12 1 views
0

非同期テストの構文が2.xから変更され、documentationが明確ではありません。Jasmine 2.6の非同期テスト

コードを実行して3秒間ブロックし、新しい構文を使用してテスト条件を実行する方法を明確にすることはできますか?

it('should update the table when new data is provided', function() { 
    var newData = ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23\nX-Y,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; 

    fixture.datum(csv).call(fp); 

    expect(fp.dataset()).toEqual(csv); 

    fp.dataset(newData); 

    expect(fp.dataset()).toEqual(newData); 

    //block for 3 seconds 
    expect(fixture.selectAll(".row").nodes().length).toBe(3); 

}); 

答えて

0

のsetTimeout()ブロックの最後の文と呼ばれる必要がある仕様にパラメータとして渡されるニーズ、及び(完了)を行って。

非同期仕様は、合計で5秒を超えている場合、それはより多くの情報のためのジャスミンのドキュメントの抜粋を参照してくださいに失敗します:デフォルトのジャスミンでは

は、タイムアウトエラーの原因となる前に終了する非同期仕様のための5秒間待機します。 doneが呼び出される前にタイムアウトが切れると、現在の仕様は失敗とマークされ、スイートの実行はdoneが呼び出されたかのように続行されます。

具体的な仕様は、それにタイムアウト値を渡すことによって>速く失敗するか、これを調整することができるより多くの時間を必要とする必要がある場合など

it('should update the table when new data is provided', function(done) { 
    var newData = ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23\nX-Y,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; 

    fixture.datum(csv).call(fp); 

    expect(fp.dataset()).toEqual(csv); 

    fp.dataset(newData); 

    expect(fp.dataset()).toEqual(newData); 

    //block for 3 seconds, then execute expect 
    setTimeout(function() { 
     expect(fixture.selectAll(".row").nodes().length).toBe(3); 
     done(); //dont forget!! 
    }, 3000); 

}); 
関連する問題