Angular 2基本测试失败

时间:2016-04-06 13:04:12

标签: angular karma-jasmine

我开始使用Angular2并进行测试:Jasmine&噶。我写了一些运行良好的健全性测试但是当我尝试一个简单的默认注射器测试时,它失败了:

using-injector.spec.ts

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

我在Karma中看到的错误:

Failed: No provider for Token AppId!
Error: DI Exception
    at NoProviderError.BaseException [as constructor] (C:/Users/f
ocuments/dev/node_modules/angular2/bundles/angular2.js:7587:21) ...

任何提示都将受到高度赞赏

2 个答案:

答案 0 :(得分:1)

我会在APP_ID函数中指定beforeEachProviders

beforeEachProviders(() => [
  APP_ID
]);

然后你应该能够注射它。

答案 1 :(得分:0)

导入

import {setBaseTestProviders} from 'angular2/testing';
import {
  TEST_BROWSER_PLATFORM_PROVIDERS,
  TEST_BROWSER_APPLICATION_PROVIDERS
} from 'angular2/platform/testing/browser';
setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS,
                     TEST_BROWSER_APPLICATION_PROVIDERS);

在我的测试和工作中。 总的来说,我认为这个导入应该在" karma-test-shim.js"看到: https://github.com/juliemr/ng2-test-seed