What is the difference between testbed.get and inj

2019-02-12 00:12发布

I am new to Angular 2 testing. I am trying to figure out what is the difference in using testsbed.get() and just using inject at the test level.

eg:

beforeEach(() => {
    TestBed.configureTestingModule({
        providers: [SomeService]
    });

    const testbed = getTestBed();
    someService= testbed.get(SomeService);
  });
});

vs

it('test service', inject([SomeService], (someService: SomeService) => {

1条回答
2楼-- · 2019-02-12 00:58

inject helper function was historically used since AngularJS as an alternative to direct injector calls. In Angular 1, it was necessary to bootstrap a test with ngMock. It is entirely optional in Angular 2 and higher and is just a suggested way for DI in TestBed tests.

It a convenience wrapper for testBed.get that allows to avoid multiple testBed.get calls, similarly to:

const [foo, bar] = [Foo, Bar].map(TestBed.get);

Other helper functions can be optionally used in conjunction with inject, namely async and fakeAsync.

查看更多
登录 后发表回答