私は、ルートパラメータの変更に応答する角度2のコンポーネントを持っています(メインルートから移動していないため、コンポーネントは最初からリロードされません。部品コード:角度2 - ルートパラメータの変更のテスト
export class MyComponent{
ngOnInit() {
this._routeInfo.params.forEach((params: Params) => {
if (params['area']){
this._pageToShow =params['area'];
}
});
}
}
これは御馳走を動作し、_pageToShow
は、ナビゲーション上の適切な設定されている
私は、ルートへの変更(そう、観察の第2のトリガに動作をテストしようとしているが、それはです私のために働くことを拒否する)。私の試みはここにある:
it('sets PageToShow to new area if params.area is changed', fakeAsync(() => {
let routes : Params[] = [{ 'area': "Terry" }];
TestBed.overrideComponent(MyComponent, {
set: {
providers: [{ provide: ActivatedRoute,
useValue: { 'params': Observable.from(routes)}}]
}
});
let fixture = TestBed.createComponent(MyComponent);
let comp = fixture.componentInstance;
let route: ActivatedRoute = fixture.debugElement.injector.get(ActivatedRoute);
comp.ngOnInit();
expect(comp.PageToShow).toBe("Terry");
routes.splice(2,0,{ 'area': "Billy" });
fixture.detectChanges();
expect(comp.PageToShow).toBe("Billy");
}));
しかし、これを実行すると、例外としてTypeError: Cannot read property 'subscribe' of undefined
がスローされます。 fixture.detectChanges();
行なしで実行すると、2番目の期待通りに失敗します。
は 'ダニ()'関数に含めるために、この溶液中で、下にスクロールすることを確認しています!私は完全に初めてそれを逃した。ソリューションをありがとう、これは私のために働いた:) –
私は内部リンクの 'フラグメント'のためにこのアプローチを使用することができました: 'fragment = new Subject();'、タブの内容の隠蔽/表示に適しています、 例えば。 –