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) => {
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
.