加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读