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

时间:2016-09-11 08:46:00

标签: angularjs angular karma-jasmine angular2-testing

我正在尝试像这样写beforeEach,以便每个it获得所需的模块/提供者:

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

但是,由于RC6中不推荐使用addProviders方法,添加提供商的更好方法是什么?

1 个答案:

答案 0 :(得分:6)

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

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

除了您不需要导出任何内容之外,它与配置常规模块几乎相同。

查看ng2-test-seed中的更多完整示例。它还有使用TestBed

测试组件的示例