没有Token AppId的提供者

时间:2016-04-14 16:01:19

标签: unit-testing typescript angular

我有一个单元测试,用于验证应用程序的APP_ID是固定值。问题是,我不知道如何设置APP_ID,以便它不是随机生成的。

Angular2团队网站上的文档非常有用,但我不确定我是否正确解释它:

  

如果您需要避免将随机生成的值用作应用程序ID,您可以通过使用此令牌配置根注入者的DI提供商提供自定义值。

这是否意味着我会在应用程序的引导程序中将其添加为提供程序?

bootstrap(App, [
    provide(APP_ID, {name: 'MyApp'})
]);

我怀疑这是远近的。有没有其他人想出如何设置APP_ID或它甚至用于什么?

injector.spec.ts

import {
it,
inject,
injectAsync,
beforeEachProviders,
TestComponentBuilder
} from 'angular2/testing';
import {APP_ID} from 'angular2/core';


describe('default test injector', () => {
  it('should provide default id', inject([APP_ID], (id) => {
    expect(id).toBe('MyApp');
  }));
});

1 个答案:

答案 0 :(得分:3)

在测试中

describe('default test injector', () => {
  beforeEachProviders(() => [provide(APP_ID, {useValue: 'MyApp'})]);
  it('should provide default id', inject([APP_ID], (id) => {
    expect(id).toBe('MyApp');
  }));
});

对于您的真实应用程序,您可以这样写

bootstrap(App, [
    provide(APP_ID, {useValue: 'MyApp'})
]);