【发布时间】:2017-03-28 20:49:15
【问题描述】:
我是 Angular 2 测试的新手。我想弄清楚在测试级别使用testsbed.get() 和仅使用inject 有什么区别。
例如:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [SomeService]
});
const testbed = getTestBed();
someService= testbed.get(SomeService);
});
});
对
it('test service', inject([SomeService], (someService: SomeService) => {
【问题讨论】:
-
我为你添加了 Jasmine 到标签和标题。因为它是这个问题所涉及的关键技术。
-
我没有完整的答案,但挖掘代码:
inject在内部调用testbed.get。主要区别在于,如果您将AsyncTestCompleter提供给inject,它将运行compileComponents,并且提供的对象具有完成异步测试执行的done函数。看起来这是旧代码,最好改用async(inject(。然后从这一点看起来像一个语法偏好问题。 -
@BrunoLM AsyncTestCompleter 已在内部使用。这不是最终用户关心的问题,使注入效率与 testBed.get 相同