最近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
この機能は意図的に削除されましたか?その場合、意図された回避策を教えてください。
@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年経っても、これがまだ処理されていないことに驚いています。
最も参考になるコメント
Angularチームは、ngCookiesを使用してCookieの設定と取得をテストする必要はないと信じていますか? 1.4のリリースから1年経っても、これがまだ処理されていないことに驚いています。