$リソースGETリクエストでURLをパラメータとして渡しています。 Angularはこのパラメータをエンコードするurlで、$ httpBackend.expectGETメソッドのリクエストとの照合は厄介です。
正規表現を使用して予想される要求に一致させることはできますが、動作させることはできません。私はリソースの場所を一致させたいが、任意の "uri"クエリ文字列パラメータの値と一致させたい。なぜ私の
Ctrlキー
var resource = $resource('../api/lookup');
resource.get({ uri: "http://www.something.com" }, function (data) {
// do something
});
テスト
// mock out the $httpBackend response
$httpBackend.expectGET(/\.\.\/api\/lookup\?uri=.*/)).respond(200, { Response: "a response" });
// call my test method here
// ensure the $httpBackend work is done
$rootScope.$apply();
$httpBackend.flush();
// do assertions
カルマ出力
Error: Unexpected request: GET ../api/lookup?uri=http%3A%2F%2Fwww.something.com
Expected GET /../api/lookup?uri=.*/
は誰でも見ることができます正規表現は一致していませんか?
編集
さえ示唆したように正規表現を向上した後、私は「$ VAR」注入の構文を使用してこの作業を取得できませんでした。私はテストを書き直し、インジェクション機能の依存性を注入し、テストの順番が正しいことを確認しました。今は魅力のように働いています!
乾杯に続いているとき。残念ながら、Angularは依然としてリクエストに一致しません。私は全体的な問題を解決することができる場合を見ていきますが、そうでない場合はこれを答えとして受け入れることになります。 – daddywoodland