私はジャスミンを使って角度2のコードのテストケースを書いています。ユーザーがログアウトすると、ログインページに戻ります。ページの場所をテストするにはどうすればよいですか?角度2のジャスミンテストケース他のページにナビゲート
6
A
答えて
3
あなたが本当に必要とするのは、正しい引数(ログインページのルート)でrouter navigateメソッドが呼び出されたかどうかをテストすることだけです。実際のナビゲーションをテストしようとすると、単体テストの場合よりも多くの副作用が発生する可能性があります。
Router.navigate
メソッドが呼び出されていることを確認するには、単にスタブとスパイを使用します。
@Component({})
class SomeComponent {
constructor(private router: Router) {}
logout() {
this.router.navigate(['/login'])
}
}
let routerStub;
beforeEach(() => {
routerStub = {
navigate: jasmine.createSpy('navigate');
}
TestBed.configureTestModule({
declaration: [ SomeComponent ],
providers: [
{ provide: Router, useValue: routerStub }
]
});
});
it('it should navigate to login after user logs out',() => {
let component = TestBed.createComponent(SomeComponent).componentInstance;
component.logout();
expect(routerStub.navigate).toHaveBeenCalledWith(['/login']);
})
0
Angularチームは、角度環境のすべてのネイティブな側面にテストを組み込むことが難しくなっています。ネイティブ角度ルータを使用している場合は、使用するためのテストが構築されています。チェックアウトはBLOGです。あなたが角度ルータを使用していない場合は、あなた自身の上にあると私は思う。
関連する問題
- 1. 角度2 [routerLink]ナビゲートが、URL
- 2. 角度2ルータのナビゲートは、ページに行くと、私は2つのコンポーネント持っ
- 3. 角度2 - ページ
- 4. 角度2+ ngIfページ
- 5. 角度2のページ分割
- 6. ナビゲート時に角度2のルーティング非表示のセレクタ
- 7. 角度js関数のジャスミンテストケースの書き方
- 8. 角度2のビューがナビゲートした後に応答しない
- 9. 他のページにナビゲートするUWPピボット
- 10. 角度2 - ブートストラップ後にナビゲートするには?
- 11. 角度2リフレッシュ同じページ
- 12. 角度2のバックグラウンドボディは1ページのみ
- 13. ngx-bootstrap - tabs角度4 - ルーターのナビゲート
- 14. 角度2送信配列別のページ
- 15. 1つのPHPページから他のページにナビゲート
- 16. 角度1の角度2+
- 17. カスタム角度指示の値を他のページに渡す
- 18. 角度2の補助ルートはナビゲート後にURLに残ります
- 19. どのように角度角度2のpolyfils角度RC.1?
- 20. 角度 - オンサイズで他のページにリダイレクトしたい
- 21. 角2、ナビゲートする前のフォームをリセット
- 22. 角度2のボタンをクリックしてナビゲート中にエラーが発生しました
- 23. パイプ2のページへの角度2のルーティング
- 24. 角度ページのデモ
- 25. 角度ナビゲート強制新規コンポーネント
- 26. ngx datatableページ分割角度2
- 27. 角度2 +角度 - cli +角度@ 5.3
- 28. 角度2他のフィールド値に基づく検証?
- 29. 場合は、他の角度
- 30. 角度ディレクティブ:他のファイル
私はルータを使用していません。代わりに、NavControllerを使用します。それに関する提案はありますか? – devtiwa
NavController用のスタブを作成し、 'push'メソッドまたは' setRoot'でスパイします。あなたはこれまでどおり使用しています –
'let nav = {setRoot:jasmine.createSpy( 'setRoot')}' –