Angular シングル ページ アプリケーションの e2e テストに分度器を使い始めたところです。ログインページでテストを開始しました。これは私が失敗した場合のために書いたテストです
Tesr ケース 1
it('Login with wrong email', function() {
loginPage.get();
loginPage.setEmail('xxxxx@xxxx.com');
loginPage.setPassword('12345678');
loginPage.submit()
expect(browser.getCurrentUrl()).toBe(loginPage.appUrl + '/#/login')
})
上記のコードは完全に機能します。URL でログインの失敗をテストしています。URL が変更されていない場合は、失敗と見なします。Q1 )これは正しいアプローチですか? エラーメッセージを確認する必要があります。このような例を見たので、url でログインの失敗をテストします。
テスト ケース 2
これは、ログインの成功を確認するためのエラー、テストケースが発生する場所です。
it('Login with correct email', function() {
loginPage.get();
loginPage.setEmail('YYYY@YYYY.YY');
loginPage.setPassword('12345678');
loginPage.submit()
expect(browser.getCurrentUrl()).toBe(loginPage.appUrl + '/#/home')
})
上記のテスト ケースは、 を使用しない場合でも完全に機能します。 を使用すると、browser.getCurrentUrl()
次のエラーが発生します。getCurrentUrl
loginPage.submit()
分度器がページと同期するのを待って 11 秒後にタイムアウトしました。https://github.com/angular/protractor/blob/master/docs/faq.mdを参照してください。次のタスクは保留中でした
この問題をグーグルで調べたところ、多くの解決策が見つかりましたが、どれも機能していないようです。
試したソリューション
- 分度器構成ファイル
allScriptsTimeout
にを追加しました。getPageTimeout
defaultTimeoutInterval
設定ファイルに追加- SOの質問link1、link2 、およびこのgithubの問題に従って、 3つすべてを試しましたが、どれも機能していないようです
timeout
エラーメッセージでグーグル検索したところ、このSOの質問link1、link2が見つかりました。動作していないものをすべて試しました
基本的にすべての解決策は、、、を使用するように言っていwait
ます。すべてのリターンが約束されているので、私はファッションですべてを試しました. この問題は を使用していることが原因であることがわかりました。どこが間違っているのか教えてください。分度器を使用した e2e テストについて詳しく知りたいです。sleep
waitForAngular
thenable
browser.getCurrentUrl
分度器の基本、ルート変更でどのように機能するか、および$http
分度器によって非同期ユーザーアクションがどのように処理されるかを知りたいです。promise などを明示的に使用する必要がありますか?
どんな助けでも大歓迎です。