Javascript 如何测试在上调用的服务。http.post的成功

Javascript 如何测试在上调用的服务。http.post的成功,javascript,angularjs,jasmine,karma-jasmine,angular-http,Javascript,Angularjs,Jasmine,Karma Jasmine,Angular Http,我有一个控制器,它调用一个服务,该服务使用用户名和密码执行http.post。在发布成功后,我调用另一个服务来创建cookie 我“相信”我已经创建了一个成功的Jasmine测试来测试帖子,但不确定接下来如何测试cookie服务 LoginController.js: cookieSrv.js 信号服务: 单元测试: describe('Controller: LoginController', function() { beforeEach(module('myApp'));

我有一个控制器,它调用一个服务,该服务使用用户名和密码执行http.post。在发布成功后,我调用另一个服务来创建cookie

我“相信”我已经创建了一个成功的Jasmine测试来测试帖子,但不确定接下来如何测试cookie服务

LoginController.js:

cookieSrv.js

信号服务:

单元测试:

describe('Controller: LoginController', function() {

    beforeEach(module('myApp'));

    beforeEach(inject(function($controller, $rootScope, signInService, $httpBackend){
        this.$httpBackend = $httpBackend;
        this.scope = $rootScope.$new();
        $controller('LoginController', {
            $scope: this.scope,
            localSignInService: signInService
        });
    }));    

    describe("successfully logged in", function() {
        it("should redirect to home", function() {

            var fakeResponse = {
                access_token: 'myToken'
            }

            this.$httpBackend.expectPOST('/api/json/authenticate', {} , function(headers) {
                return {
                    'Content-Type': 'application/json',
                    'X-app-Username': 'tomcat',
                    'X-app-Password': 'tomcat'
                };
            }).respond(200, fakeResponse);

            this.scope.LogIn("tomcat","tomcat");
            this.$httpBackend.flush();
            expect(fakeResponse.access_token).toEqual("myToken");
        });
    });
});
更新:

根据以上内容,我得到了错误:

ERROR Some of your tests did a full page reload! 
一些研究表明,这是因为cookie服务中的window.location.assign。如果我注释掉这一行,测试运行良好,没有上述错误

app.service('signInService', function($http) {    
    this.authUser = function (usrnm, pwd) {    
        return $http.post('/api/json/authenticate', {}, {
            headers: {
                'Content-Type': 'application/json',
                'X-app-Username': usrnm,
                'X-app-Password': pwd
            }
        });
    };
});
describe('Controller: LoginController', function() {

    beforeEach(module('myApp'));

    beforeEach(inject(function($controller, $rootScope, signInService, $httpBackend){
        this.$httpBackend = $httpBackend;
        this.scope = $rootScope.$new();
        $controller('LoginController', {
            $scope: this.scope,
            localSignInService: signInService
        });
    }));    

    describe("successfully logged in", function() {
        it("should redirect to home", function() {

            var fakeResponse = {
                access_token: 'myToken'
            }

            this.$httpBackend.expectPOST('/api/json/authenticate', {} , function(headers) {
                return {
                    'Content-Type': 'application/json',
                    'X-app-Username': 'tomcat',
                    'X-app-Password': 'tomcat'
                };
            }).respond(200, fakeResponse);

            this.scope.LogIn("tomcat","tomcat");
            this.$httpBackend.flush();
            expect(fakeResponse.access_token).toEqual("myToken");
        });
    });
});
ERROR Some of your tests did a full page reload!