在集成测试时在 AngularJS 中使用 $injector(不使用 ngMock)

Using $injector in AngularJS when integration testing (without using ngMock)

我需要使用 Karma/Jasmine 在 AngularJS 中设置一些集成测试但是遇到了麻烦,因为当不使用 ngMock 时(因为我想访问实际的 $http 端点),有没有 moduleinject 方法。

那么如何将服务注入到我的测试中呢?

我试过 angular.injector.invoke(...) 但无法正常工作,返回时总是出现类似 Unknown provider: AuthServiceProvider <- AuthService 的错误。

想法?

试试这个

'use strict';

describe('Login User', function () {
    var app, LoginService;

    beforeEach(module('app')) ;

    beforeEach(inject(function(_LoginService_) {
        LoginService = _LoginService_;
    })) ;

   it('Should be logged in', function () {
       var isLoggedIn = LoginService.isUserLoggedIn();
       expect(isLoggedIn).toBeTruthy();
    });
 });