Jasmine和angularjs,在茉莉花中使用$cookies
发布时间:2020-12-17 17:17:35 所属栏目:安全 来源:网络整理
导读:我对茉莉是个新手,想要为下面的代码创建一个测试,我在测试部分创建了代码,但是我得到了“TypeError:无法设置未定义的属性’用户名’”.. 我在apps.js中创建了一个全局命名空间’cp’,并在服务和控制器中使用它. //controllercp.controller = {};cp.controll
我对茉莉是个新手,想要为下面的代码创建一个测试,我在测试部分创建了代码,但是我得到了“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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |