簡體   English   中英

Angular Karma測試$ .cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM