gpt4 book ai didi

cookies - Jasmine 和 angularjs,在 jasmine 中使用 $cookies

转载 作者:行者123 更新时间:2023-12-02 18:43:37 24 4
gpt4 key购买 nike

我对 jasmine 相当陌生,想要为下面的内容创建一个测试,我在测试部分创建了代码,但我得到“TypeError:无法设置未定义的属性'用户名'”..

我在 apps.js 中创建了一个全局命名空间“cp”,并在服务和 Controller 中使用了它。

//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 包装服务实现。您可能会发现this post有帮助。另外,我发现了这个testing cookies in unit and e2e 。恕我直言,这个问题是它离金属太近,必须直接使用浏览器cookie。

关于cookies - Jasmine 和 angularjs,在 jasmine 中使用 $cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com