2016-12-07 2 views
0

Je suis en train de tester un component.ts:angulaire 2 Erreur de test ne peut pas lire la propriété 'foreach' undefined

import { ActivatedRoute, Params } from '@angular/router'; 
import { Location } from '@angular/common'; 
... 
ngOnInit(): void { 
    this.route.params.forEach((params: Params) => { 
     let id = +params['id']; 
... 
} 

le code spec.ts ci-dessous:

describe('MyDetailComponent',() => { 
    beforeEach(async(() => { 
    addMatchers(); 
    TestBed.configureTestingModule({ 
      imports: [ MaterialModule, FormsModule ], 
      declarations: [ MyDetailComponent ], 
      providers: [ 
       ... 
       { provide: RequestOptions, useClass: RequestOptionsStub }, 
       { provide: ActivatedRoute,  useClass: RouterStub }, 
       { provide: Location }, 
       { provide: XHRBackend, useClass: MockBackend }, 
       AppSettings, 
       Http, 
       ConnectionBackend, 
       Jsonp 
      ] 
     }) 
    .compileComponents() 
    .then(createComponent); 
})); 

et I » m obtenir l'erreur: Failed: Uncaught (en promesse): erreur: erreur dans: 0: 0 causé par: Impossible de lire la propriété 'foreach' undefined TypeError: Impossible de lire la propriété 'foreach' undefined

Comment réparer ceci?

+0

Il y avait aussi une bonne idée d'ajouter RouterTestingModule qui a contribué à résoudre le problème ainsi: TestBed.configureTestingModule ({ importations: [... RouterTestingModule.withRoutes ([ {chemin: '...', composant: MyDetailComponent} ]) ], – Miha

Répondre