繁体   English   中英

Angular 2 beforeEachProviders在测试中因Injector失败

[英]Angular 2 beforeEachProviders fail with Injector in tests

当我尝试在测试beforeEachProviders Injector传递给beforeEachProviders ,出现以下错误。

Failed: Cannot resolve all parameters for 'Injector'(?, ?, ?, ?, ?).
Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'Injector' is decorated with Injectable.

我使用的代码

import { Injector } from 'angular2/core';

describe(() => {
  beforeEachProviders(() => [Injector]);
});

什么东西少了? 我应该给提供程序以实例化什么?

我认为您不需要在提供程序中配置Injector进行测试。 此类的实例可以直接注入到您的测试中...

这是我在其中一项测试中所拥有的(没有Injector “显式”提供程序),以后我可以将其注入到测试中:

import {it, describe, expect, beforeEach, inject, beforeEachProviders} from 'angular2/testing';
import {HTTP_PROVIDERS, XHRBackend, Response, ResponseOptions} from 'angular2/http';
import {MockBackend, MockConnection} from 'angular2/http/testing';
import {provide, Injector} from 'angular2/core';
import {HttpService} from "./http-service";

describe('HttpService Tests', () => {
  beforeEachProviders(() => {
    return [
      HTTP_PROVIDERS,
      provide(XHRBackend, { useClass: MockBackend }),
      HttpService
    ];
  });

  it('Should return a list of dogs', inject(
         [XHRBackend, HttpService, Injector],
         (mockBackend, httpService, injector) => {
    console.log(injector); // <----- Not null
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM