【发布时间】:2013-07-28 17:03:50
【问题描述】:
我有一个简单的服务,可以将 cookie 设置为 angular,但没有明显的方法可以测试它们是否已在端到端测试中设置。
要测试的代码很简单
var splashApp = angular.module('splashApp', ['ngCookies']);
splashApp.controller('FooterController', function ($location, $cookies) {
$cookies.some_cookie = $location.absUrl();
});
但我找不到任何关于如何测试的文档。这是我发现的:
- How to access cookies in AngularJS?
- http://docs.angularjs.org/api/ngCookies.$cookies
- http://docs.angularjs.org/api/ngCookies.$cookieStore
我也试过
angular.scenario.dsl('cookies', function() {
var chain = {};
chain.get = function(name) {
return this.addFutureAction('get cookies', function($window, $document, done) {
var injector = $window.angular.element($window.document.body).inheritedData('$injector');
var cookies = injector.get('$cookies');
done(null, cookies);
});
};
return function() {
return chain;
}
});
但这只会返回父浏览器的 cookie,而不是我要测试的页面。
关于如何做到这一点的任何示例?
【问题讨论】:
-
我假设您正在使用 cookie 做一些事情,可能会在您的程序中更改 CSS 类 - 任何有效地将 cookie 的值绑定到外部的东西。尝试测试一下?
-
其实我不是。 cookie 存储在会话中的某个时间点,然后与 POST 请求一起(自动)发送到服务器。遗憾的是,由于 cookie,UI 没有发生变化。
-
你读过这个吗? pastie.org/4758669
标签: testing angularjs end-to-end