由于在 RC6 中不推荐使用 addProvider,如何在 angular2 jasmine 测试规范中添加提供程序?

How to add providers in angular2 jasmine testing spec since addProvider is deprecated in RC6?

我正在尝试这样编写我的 beforeEach,以便每个 it 都能获得所需的模块/提供程序:

beforeEach(() => addProviders([
        BaseRequestOptions,
        MockBackend,
        {
            provide: Http,
            useFactory: (backend: MockBackend, options: BaseRequestOptions) => new Http(backend, options),
            deps: [MockBackend, BaseRequestOptions]
        },
        MyService
    ]));

但由于 addProviders 方法在 RC6 中已弃用,添加我的提供程序的更好替代方法是什么?

使用 @angular/core/testing 中的 TestBed 创建测试模块。例如

beforeEach(() => {
  TestBed.configureTestingModule({
    imports: [ ... ],
    declarations: [ ... ],
    providers: [
      { .. },
      MyService
    ]
  });
});

这与配置常规模块几乎相同,只是您不需要导出任何内容。

ng2-test-seed 中查看更完整的示例。它有测试组件的示例也使用 TestBed