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

标签 angularjs unit-testing jasmine integration-testing karma-runner

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

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

我已经尝试过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();
    });
 });

关于angularjs - 集成测试时在AngularJS中使用$injector(不使用ngMock),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226062/

相关文章:

javascript - 在Jasmine中,beforeAll()和let之间有什么区别吗?

javascript - 从 Angular 范围值动态更改分页页面大小

javascript - 使用 AngularJS 进行 PUT 的 CORS 请求无效

javascript - Angular 模板可以调用返回 promise 的函数吗

javascript - 如何将一个数组映射到另一个具有不同值的数组(angularJs)

android - 使用 Dagger 2(Robolectric 和 Mockito)进行单元测试

c# - 如何使用 Moq 测试 ServiceStack 服务

jasmine - Protractor : How to wait for page complete after click a button?

unit-testing - Groovy,如何模拟接口(interface)保持其他方法

javascript - Protractor :如何获取当前的浏览器宽度?