2017-11-28 7 views
0

は、私は自分自身がモカでほとんどすべての私のユニットテストの開始時にこれを書い見つける:デフォルトではモカプログラムによって設定VUEエラーハンドラ

it('should do something', (done) => { 
    Vue.config.errorHandler = done; 

    // do something aynchronous 
}); 

、Vueのは、すべてのエラー自体をキャッチし、コンソールに記録します、だからモカはそれらを見ることができない。このコードは、スローされたエラーがテストに失敗することを確認します。

このコード行ですべての非同期テストを開始しなくても、これを行う方法はありますか?もし私がプラグインを書く/使用する必要があれば、それは問題ありません。

+0

私はモカを使用しませんが、これまで使ってきたすべてのテストフレームワークには、これらの種類の処理とティアダウン方法があります。 –

+0

@craig_hええ、beforeEachフックがあります。テスト段階ではなく、実行前にテストを失敗させるためにのみ使用できます。 – callumacrae

答えて

-1

試してください:あなたのテストエントリで

Vue.config.errorHandler = function (err, vm, info) { 
    throw err 
} 

+0

エラーハンドラが約束で呼び出された場合、これは機能しません。 – callumacrae

+0

私のテストで動作します。非同期テストを 'done'呼び出しから非同期関数に変更してみてください。例えば\ callumacrae – wxsm

+0

これは失敗します: 'Vue.nextTick(()=> {新しいエラーを投げます( 'テスト');} ); ' - ' Vue.nextTick() 'は内部的に約束を使用します。 – callumacrae

関連する問題