gpt4 book ai didi

unit-testing - 如何对 Angular 服务与 $cookies 的交互进行单元测试?

转载 作者:行者123 更新时间:2023-12-04 17:49:41 27 4
gpt4 key购买 nike

我目前有一个依赖于 $cookies 中设置的变量的服务。但是,当我想对服务和 $cookies 中存储的值之间的交互进行单元测试时,那么服务总是在 $cookie 值的实际初始化之前进行初始化。

所以,我的问题是:如何正确地对服务和 $cookie 值之间的交互进行单元测试? (例如:如何在我的服务初始化之前设置 $cookies 中的值?)

注意:我使用 Angular 1.2 和 Karma 进行单元测试。

最佳答案

我在 JSFiddle 中创建了一个示例,希望可以帮助您解决问题。

link

//--- CODE --------------------------
angular.module('myapp.test', [], function () {

}).controller('testcont', function($scope, $cookies) {
// Read a cookie and do something with it
$scope.favoriteCookie = $cookies.myFavorite;
});

// --- SPECS -------------------------

describe('controllers', function(){
var scope;
beforeEach(angular.mock.module('ngCookies', 'myapp.test'));
beforeEach(inject(function($controller, $rootScope, $cookies){
// Setting a cookie for testing
$cookies.myFavorite = 'oatmeal';
scope = $rootScope.$new();
$controller('testcont', {$scope:scope, $cookies: $cookies});
}));

it('sets the cookie on the scope', function(){
expect(scope.favoriteCookie).toBe('oatmeal');
});
});

关于unit-testing - 如何对 Angular 服务与 $cookies 的交互进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20237018/

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