2015-01-14 6 views
20

$httpBackend.when('')$httpBackend.expect('')の違いは何ですか?

私はこれらの2つの方法の違いを知りません。また、anglejs APIドキュメントは私を助けません。

APIドキュメントリンクhttps://docs.angularjs.org/api/ngMock/service/ $ httpBackend

答えて

23

$httpBackend.expectは - 要求期待
$httpBackend.whenを指定する - からバックエンドの定義

を指定します:https://docs.angularjs.org/api/ngMock/service/ $ httpBackend
要求の期待への道を提供アプリケーションによって行われた要求についてのアサーションを作成し、それらの要求に対する応答を定義します。予想される要求が行われていないか、間違った順序で行われた場合、テストは失敗します。

バックエンドの定義では、特定の要求が行われたかどうかを確認しないアプリケーション用の偽のバックエンドを定義することができます。要求があった場合、訓練された応答を返します。テスト中に要求が行われたかどうかにかかわらず、テストは成功します。

したがって、それはあなたがexpectでリクエスト期待を設定する場合は、まったく同じ要求、倍の正確な番号を取得しない場合、テストは失敗することを意味します。しかし、whenと設定した場合、バックエンドは適切に応答しますが、何件の要求があったとしても期待しないため、テストに失敗しません。

+0

まだ不明です。アプリケーションが「いくつかのバックエンドのもの」を要求するだけです。「 –

+2

要求が期待と一致せず、テストに失敗した場合、Expectがスローします。 'いつ'に期待がない場合、要求に適切に応答しますが、要求が到着しなければ失敗しません。リクエストが特定の形式であると主張する場合は 'expect'を使用します。リクエストを気にしない場合は、「when」を使用してください。 –

関連する問題