2016-09-28 17 views
2

いずれにしても解決してしまうが、これは私のテストケースですか?ブルーバードの約束は、私が何か間違ったことしなければならない

+1

なぜダブルアサートがありますか? 「拒否」を処理する結果として得られる約束は解決である。 –

+0

@ DanielA.White '.rejectedWith'は*合格しますが、約束が**解決されていることに気付きました。**これはこのテストケースが示すものです。ここにチェーンされた約束はありません –

+0

私はモカが約束の状態をどのように見ているかを見ていきます。 –

答えて

1

モカテストで約束をするときは、テストからreturn the promiseすることが重要です。あなたのケースでは

、それは次のようになります。

it('Promise is never resolved but does it get resolved?',() => { 
    return new Promise(() => false) 
    .should.be.fulfilled() 
}) 

しかし、それは約束の履行がshouldが呼び出された時に決定することができないよう、あなたが、ここで必要な正確に何おそらくまだありません。あなたの実際のテストはおそらく異なるでしょう、最も重要な部分はまだ約束を返すことです。

このようにすると、約束が履行されたか否かをさらに明言する必要はありません。これは、暗黙のうちにモカによって行われるためです。

私は個人的にはchai-as-promisedの大きなファンです。これは以前と同じテストを使用することができますが、今回はうまくいきます。

+0

ありがとうございます。 'should 'は' chai-as-promised'のような非同期性を扱います –

+0

@PeteV。ああ、私はそれを知らなかった。すばらしいです :) –

関連する問題