javascript / intermediate
Snippet
Abhängigkeiten mit Jasmine Spies simulieren
Beim Testen von Angular-Komponenten sollten diese isoliert werden, indem ihre Abhängigkeiten simuliert werden. Jasmine 'Spies' ermöglichen es, Aufrufe einer Funktion zu verfolgen und deren Rückgabewert zu definieren, wodurch echte HTTP-Aufrufe oder Seiteneffekte verhindert werden.
snippet.js
1
2
3
4
5
6
7
8
9
it('should fetch data on init', () => {const service = TestBed.inject(DataService);const spy = spyOn(service, 'getData').and.returnValue(of(['Item 1']));component.ngOnInit();expect(spy).toHaveBeenCalled();expect(component.items).toEqual(['Item 1']);});
angular
Erklärung
1
spyOn(service, 'getData')
Erstellt einen Wrapper um die Service-Methode, um deren Ausführung abzufangen.
2
and.returnValue(of(['Item 1']))
Zwingt den Spy, ein simuliertes Observable zurückzugeben, anstatt die ursprüngliche Logik auszuführen.