web-dev-qa-db-fra.com

Quelle est la différence entre testbed.get et injecter dans Angular 2 / Jasmine testing?

Je suis nouveau dans les tests Angular 2. J'essaie de comprendre quelle est la différence en utilisant testsbed.get() et en utilisant simplement inject au niveau du test.

par exemple:

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

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

contre

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

inject la fonction d'assistance était historiquement utilisée depuis AngularJS comme alternative aux appels directs des injecteurs. Dans Angular 1, il était nécessaire de bootstrap un test avec ngMock. Il est entièrement facultatif dans Angular 2 et supérieur et n'est qu'un moyen suggéré pour DI dans les tests TestBed.

C'est un emballage pratique pour testBed.get qui permet d'éviter plusieurs appels testBed.get, De la même manière que:

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

D'autres fonctions d'assistance peuvent être utilisées en option avec inject, à savoir async et fakeAsync.

24
Estus Flask