Angular.js: AngularモックはブラウザのCookieをモックしなくなりました

作成日 2015年08月27日  ·  3コメント  ·  ソース: angular/angular.js

最近Angular1.4に移行しましたが、Cookie内のテストの間に残っている状態が原因で、一部のテストが断続的に失敗していることに気付きました。 最新バージョンでは、Cookieのモックがangular-mocksから削除されたようです。 要点を説明するために、いくつかのプランクがあります。

ここで、Angular 1.3では、Cookieは1つのテストで$ cookieStoreに設定され、後続のテストでは$ cookieStoreで定義されません。
http://plnkr.co/edit/WbRKACxBvJkHUmJwntN4?p=preview

ただし、Angular 1.4では、Cookieは後続のテストで設定されたままであるため、失敗します。
http://plnkr.co/edit/c6jpOmmSuufSYvQysdTQ?p=preview

この機能は意図的に削除されましたか?その場合、意図された回避策を教えてください。

ngCookies investigation

最も参考になるコメント

Angularチームは、ngCookiesを使用してCookieの設定と取得をテストする必要はないと信じていますか? 1.4のリリースから1年経っても、これがまだ処理されていないことに驚いています。

全てのコメント3件

@shahataたまたま違いがある理由を知っていますか?

@Narretz Angularの以前のバージョンでは、 $browser.cookies()ngMockによって完全にモックアウトされ、$ $cookiesを介してCookieを書き込むと、ブラウザーではなくメモリ内のマップに書き込まれました。 これについては過去に説明し、新しいCookieメカニズムにフックして、Cookieが正しいパラメータで書き込まれていることを確認するツールを提供するテストキットを追加することを検討しました(Cookieの値だけではありません)が、私は思いませんこれは非常に重要です。

@butchpetersテストで$cookiesをモックするのが最善の方法だと思います。

module({$cookies: {
  store:{},
  put: function (key, value) { this.store[key] = value; },
  get: function (key) { return this.store[key]; }
}});

修正されたプランカーは次のとおりです。http: //plnkr.co/edit/LTQHDtDM5FOiTiXl2waT ?p = Preview

Angularチームは、ngCookiesを使用してCookieの設定と取得をテストする必要はないと信じていますか? 1.4のリリースから1年経っても、これがまだ処理されていないことに驚いています。

このページは役に立ちましたか?
0 / 5 - 0 評価