Angular.js: Angular 模拟不再模拟浏览器 cookie

创建于 2015-08-27  ·  3评论  ·  资料来源: angular/angular.js

我们最近迁移到 Angular 1.4,我们注意到一些测试由于 cookie 中的测试之间剩余的状态而间歇性地失败。 在最新版本中,对 cookie 的模拟似乎已从 angular-mocks 中删除。 我有几句话可以说明这一点。

这里,在 Angular 1.3 中,cookie 在一次测试中设置在 $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 发布一年后,这个问题仍然没有得到解决。

所有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]; }
}});

这是固定的 plunker: http ://plnkr.co/edit/LTQHDtDM5FOiTiXl2waT?p=preview

Angular 团队是否认为没有人需要使用 ngCookies 测试设置和获取 cookie? 我很震惊地发现,在 1.4 发布一年后,这个问题仍然没有得到解决。

此页面是否有帮助?
0 / 5 - 0 等级