2016-05-17 9 views
-1

emberのmochaとchaiを使用すると2つの可能性がありますdonesEmberのmochaとChaiで2つの `done`関数を使用

この(動作しない)

function doSomething() { 
    it('somethinng else', function(done) { 
    var res = false 
    Ember.run.later(() => { 
     expect(res).to.be.true 
     done() 
    }) 
    }) 
} 
it('somethinng', function(done) { 
    doSomething() 
    Ember.run.later(() => { 
    //do other things 
    done() 
    }) 
}) 

ような何かをしようとしているが、私は必ずしもsomethingが実際に行われていると言う必要はありません。 1つのモカ/チャイテストで2つの非同期機能をテストするための適切な方法何

Qunitのassert.asyncと同等であるモカやチャイで一部の機能が自分であれば良い代替ですhttps://api.qunitjs.com/async/

答えて

1

あなたの最初の試みは、働くことができませんMochaはitの呼び出しをネストすることを許可していないため(ititにコールできません)。コールバックを受け取る2つの非同期操作を連鎖させたい場合は、最初のコールバックにカスタムコールバックを渡し、itdoneを2番目のコールバックに渡すだけです。あなたのコードの適応:doSomethingが行われた後

function doSomething (done) { 
    var res = false; 
    Ember.run.later(() => { 
     expect(res).to.be.true; 
     done(); 
    }); 
} 

it('something', function (done) { 
    doSomething(function() { 
     doSomethingElse(done); 
    }); 
}); 

doSomethingElseは実行されます。私はdoSomethingElseが完了を通知するコールバックを取るいくつかの非同期操作だと仮定しました。

+0

この回答は私の作業方法とまったく同じではありませんが、依然として必要な機能はありませんか?そしてまだ1つの操作を完了しただけです – Hillboy

+0

あなたの質問は不明です。 – Louis

関連する問題