1
私は次のようなコードブロックのユニットテストカバレッジ、エラーを処理するメソッドを呼び出して、具体的catchブロックを取得しようとしています:私は持っているユニットテストカバレッジRxJS.Observable.Catchブロック
return this._http.get(/someurl)
.map((response: Response) => {
let results = <any>response.json();
return results;
})
.catch(response => {
return this.handleError(response);
});
を
キャッチブロックは呼び出されず、スパイが一度もヒットしなかったため、テストは失敗します。そこに運がないMockConnection.mockErrorを使ってみました。私はObservableでsubscribeエラーハンドラを使用する必要がある投稿を見ましたが、エラーレスポンス経由でcatchブロックをトリガする方法が必要ですか?私はObservable.throw()を介してObservableの失敗を投げてみましたが、それは正しいパスの下で私を得ることはできませんでした。
実装する必要があります。さらに、私はサブスクリプション(値=> {}、エラー=> {//ここに期待})を提供しなければならなかったことを追加します。私はexpect文で発生していた問題を解決しました。空のサブスクリプションブロックは私にとっては愚かなようですが、エラーブロックによって私は自分のアサーションを望みどおりに実行することができました。ボトムライン、エラーのないケース私はサブスクライブブロックを持っていた私はなぜ私はそれがネガティブテストにも必要とは思わなかったのか分からない。ありがとう! – Shawn