Ich bin neu in Angular 2 testen. Ich versuche herauszufinden, was ist der Unterschied in der Verwendung testsbed.get()
und nur mit inject
auf der Teststufe.Was ist der Unterschied zwischen testbed.get und inject in Angular 2/Jasmine Tests?
zB:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [SomeService]
});
const testbed = getTestBed();
someService= testbed.get(SomeService);
});
});
vs
it('test service', inject([SomeService], (someService: SomeService) => {
Ich habe Jasmine Tags und Titel für Sie hinzugefügt. Es ist die Schlüsseltechnologie, auf die sich diese Frage bezieht. – JGFMK
Ich habe keine vollständige Antwort, aber Graben den Code: 'inject' ruft' testbed.get' intern auf. Der Hauptunterschied besteht darin, dass, wenn Sie 'AsyncTestCompleter' zum 'injizieren' bereitstellen, 'compileComponents' ausgeführt wird und das bereitgestellte Objekt eine' done' Funktion hat, die die Ausführung eines asynchronen Tests abschließt. Sieht so aus, als wäre dies alter Code und es wird bevorzugt, 'async (inject (' '' '') stattdessen zu verwenden. Dann sieht von diesem Punkt aus wie eine Syntaxpräferenzsache. – BrunoLM
v4 https://github.com/angular/angular/blob/4.3.x /packages/core/testing/src/test_bed.ts#L493 /v2 https://github.com/angular/angular/blob/2.0.x/modules/%40angular/core/testing/test_bed.ts#L404 – BrunoLM