【发布时间】:2016-04-06 13:04:11
【问题描述】:
我开始使用 Angular2 和测试:Jasmine & Karma。我写了一些运行良好的健全性测试,但是当我尝试一个简单的默认注入器测试时它失败了:
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) ...
任何提示将不胜感激
【问题讨论】:
-
您是否像github.com/angular/angular/blob/master/… 中所示那样致电
setTestProviders(...)? -
APP_ID是怎么定义的?
-
您是否导入了服务?您可以使用新键盘来实例化服务,而不是使用注入器。
-
工作!我在测试中直接导入了 setBaseTestProviders(),但是我在测试 angular2-test-seed 项目中注意到这个导入在“karma-test-shim.js”中。我不确定,但是,如果我在下一次测试开发中需要这个。谢谢!
标签: angular karma-jasmine