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

use*_*043 4 angularjs karma-jasmine angular2-testing angular

我想写beforeEach这样的,以便每个人都it获得所需的模块/提供者:

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

但是由于addProvidersRC6中的方法已被弃用,添加我的提供者的更好的替代方法是什么?

Pau*_*tha 6

使用测试床@angular/core/testing创建测试模块.例如

beforeEach(() => {
  TestBed.configureTestingModule({
    imports: [ ... ],
    declarations: [ ... ],
    providers: [
      { .. },
      MyService
    ]
  });
});
Run Code Online (Sandbox Code Playgroud)

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

请参阅ng2-test-seed中的更多完整示例.它还有一些测试组件的例子TestBed