2016-09-09 9 views
2

私は関数getUserRecommendationsによってスローされるべきエラーをキャッチしようとしています。残念ながら、それは動作しませんし、私は私のテストは、それがこのメッセージに沿って通過していないことを結果として得る非同期/ AwaitがMochaでエラーをスローする

it('should throw an error when no user ID is provided', (done) => { 
    expect(async() => { 
    await Client.getUserRecommendations(null, {}) 
    }).to.throw(/Missing/) 
}) 

:これは私の例である

AssertionError: expected [Function] to throw an error 
+1

を[答えを投稿](http://stackoverflow.com/help/self -回答)。 – Bergi

+0

ここで 'async' /' await'は全く役に立たないことに注意してください。 'expect(()=> SClient.getUserRecommendations(null、{}))'は、同様に約束を返す関数を使います。 – Bergi

答えて

3

あなたが設定した方法expect.to.throwが約束を期待していないため、テストは機能しません。少なくとも、私はそれがthis issueに基づいて起こっていると思います。

最善の選択肢はchai-as-promisedを使用してのような何かを行うことです。むしろ、問題に解決策を編集しないでください

it('should throw an error when no user ID is provided',() => { 
    expect(Client.getUserRecommendations(null, {})).be.rejectedWith(/Missing/); 
}); 
+0

私は 'chai-as-promised'を使って編集しましたが、今ではこのエラーが出ます:TypeError:[Function]はthenableではありません。 – Mazzy

+0

'expect'では' async'と 'await'キーワードを使用しません。 chai-as-promisedは基本的な約束を処理します。 –

+0

まだ動作しません。私は同じエラーを受け取ります – Mazzy

関連する問題