我对茉莉是个新手,想要为下面的代码创建一个测试,我在测试部分创建了代码,但是我得到了“TypeError:无法设置未定义的属性’用户名’”..
我在apps.js中创建了一个全局命名空间’cp’,并在服务和控制器中使用它.
//controller cp.controller = {}; cp.controller.LoginController = function($scope,$location,$cookies){ $scope.signIn = function(){ $cookies.user = $scope.form.username; user.set($scope.form.username); $location.hash( "home" ); } }; //service cp.serviceFactory = {}; cp.serviceFactory.user = function user( $cookies){ var userName = $cookies.user; return{ set: function(name){ userName = name; },get: function(){ return userName; } } }; //test script describe('Cameo Controllers',function() { describe('LoginController',function(){ var scope,cookies,ctrl,$httpBackend; beforeEach(module('CameoPaaS')); beforeEach(inject(function(_$httpBackend_,$rootScope,$controller,$cookies) { $httpBackend = _$httpBackend_; // cookies = $cookies.username; scope = $rootScope.$new(); cookies = scope.$cookies; ctrl = $controller(cp.controller.LoginController,{$scope: scope,$cookies: cookies}); })); it('should log the user into the system',function() { expect(scope.username).toBeUndefined(); scope.form.username = 'me'; scope.signIn(); //expect(user).toBe(undefined); }); }); });
问题:如何在测试脚本中定义和设置$cookies.username的值以解决错误.
解决方法
首先请确保您包含angular-cookies.js,它们在
1.0.0rc3与主发行版分开
如果是我,我会将cookie处理包装到服务中,然后使用jasmine来模拟/监视你的cookie-wrapper服务实现.你可能会发现this post很有帮助.此外,我发现这testing cookies in unit and e2e.恕我直言,这是因为它太靠近金属,不得不直接使用浏览器cookie.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。