0

我正在尝试开始为我的 Angular 应用程序编写单元测试并很快遇到了一个停止块,因为我不确定如何以可测试的方式准确地模拟我的服务。我的服务如下: var services = angular.module('myApp', ['ngResource']);

 services.factory('LogonFactory', function ($resource, $http) {
        return $resource('/servicemen/logon/', {}, {
            login: {
                method: 'POST'
            }
       })
  });

到目前为止,我的测试包括:

describe('Logon', function () {
    var mockUserResource, $httpBackend;
    beforeEach(angular.mock.module('myApp'));

    beforeEach(function () {
        angular.mock.inject(function ($injector) {
            $httpBackend = $injector.get('$httpBackend');
            mockLoginResource = $injector.get('login');
        })
    });

    describe('login', function () {
        it('should call login function', inject(function (User) {
            $httpBackend.expectGET('/servicemen/logon/')
                .respond([{
                username: 'test'
            }]);

            var result = mockLoginResource.login();
            $httpBackend.flush();
            expect(result[0].username).toEqual('test');
        }));

    });
});

我也收到错误没有冲洗!提前致谢。

4

1 回答 1

0

考虑将第 8 行更改为 mockLoginResource = $injector.get('LogonFactory');

于 2014-02-12T21:44:21.963 回答