javascript / intermediate
Snippet
Abfangen von ActivatedRoute Query-Param-Maps in Jasmine-Tests
Beim Testen von Komponenten, die von URL-Suchparametern abhängen, führt die Bereitstellung einer vollständigen Router-Instanz zu unnötiger Komplexität. Die Verwendung von Angulars Hilfsfunktion convertToParamMap in Kombination mit einem RxJS of()-Observable erstellt einen isolierten und deterministischen Stub von ActivatedRoute.queryParamMap für Unit-Tests.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { TestBed } from '@angular/core/testing';import { ActivatedRoute, convertToParamMap } from '@angular/router';import { of } from 'rxjs';import { DashboardComponent } from './dashboard.component';describe('DashboardComponent Route Testing', () => {beforeEach(async () => {await TestBed.configureTestingModule({imports: [DashboardComponent],providers: [{provide: ActivatedRoute,useValue: {queryParamMap: of(convertToParamMap({ view: 'analytics', page: '2' }))}}]}).compileComponents();});});
angular
Erklärung
1
import { ActivatedRoute, convertToParamMap } from '@angular/router';
Importiert Routen-Schnittstellen und die Hilfsfunktion zum Erstellen unveränderlicher Param-Maps.
2
queryParamMap: of(convertToParamMap({ view: 'analytics', page: '2' }))
Kapselt simulierte Query-Parameter in einem Observable-Stream, der Router-Emissionen nachbildet.