[英]Angular Karma Testing $.cookie
我的注銷功能將請求發送到注銷api,並清除所有cookie,從而有效結束會話。 它確實運行良好,但是當我在測試中運行該函數時,我得到:
ReferenceError: $ is not defined
我知道這是由於我在注銷功能中嘗試通過運行以下命令清除所有cookie的緣故:
for(var cookie in $.cookie()) {
$.removeCookie(cookie);
}
謝謝參觀! 其余代碼如下:
調節器
simulatorApp.controller('homeController', function homeController($scope, $http, $cookies, localAPI) {
$scope.logout = function() {
var logoutRequest = {
method: 'POST',
url: localAPI.url + 'auth/logout/',
headers: requestHeaders
};
$http(logoutRequest);
for(var cookie in $.cookie()) {
$.removeCookie(cookie);
}
};
測試
describe('homeController', function() {
beforeEach(module('simulatorApp'));
var controller;
beforeEach(inject(function(_$controller_) {
controller = _$controller_;
}));
var $scope = {};
beforeEach(inject(function($controller, $httpBackend) {
$httpBackend.whenPOST("http://0.0.0.0:8000/api/logout/").respond("Good for you");
controller('homeController', {
$scope: $scope
});
$scope.logout();
$httpBackend.flush()
}));
});
$是JQuery的關鍵字,因此這里的問題是您的業力運行時不知道$是什么。
在karma.conf.js
的文件部分中添加您的jquery源可以解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.