ログインフォームがあり、ログインに成功した後にユーザーが他のページにリダイレクトされるかどうかを確認するために統合テストを行いたいと思います。
カーテンの後ろには、次を介してページのリロードを開始する認証サービスがあります。 $window.location.href = 'home';
最初に私はこれを持っていました:
it('should redirect to /home if credentials are correct', function(){
browser().navigateTo('/login');
input('credentials.username').enter('testuser');
input('credentials.password').enter('testpass');
element('button.login').click();
expect(browser().location().path()).toBe("/home");
});
しかし、AngularJS テストは両方とも失敗しました - Karma として実行し、ブラウザーでランナーとして実行します。それから私は多分expect
早すぎると思い、そのsleep(1)
前に追加しました。そして、それは問題なく、テストランナーで、アサーションの前にページが更新されるのを見ることができました.
location().path('/home') があればうまくいくと思いますが、このステップで完全にリロードすることをお勧めします。
そのような場合に使用する必要がある設計/テスト パターンはありますか?