微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

测试 – 如何在端到端测试中测试AngularJS cookie?

我有一个简单的服务,以角度设置cookie,但没有明显的方法来测试它们是否已经设置在端到端测试中.

要测试的代码就像

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,而不是我想要测试的页面.

有关如何执行此操作的任何示例?

解决方法

好像你需要使用 PhantomJS.

PhantomJS is a headless WebKit scriptable with a JavaScript API. It
has fast and native support for varIoUs web standards: DOM handling,
CSS selector,JSON,Canvas,and SVG. –07001

它在API中支持自定义cookie.
在测试方面,这可能是您的最佳选择.
您可能还想查看CasperJS以帮助测试页面导航.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐