現在、gebを使って自動テストを書く方法を学ぶ過程で、これはnoobの観察と質問のビットかもしれません。それは私だけであるか、または複数のテストを次々と実行していくと、テストの実行をスピードアップするように見えますか?たとえば、新しいテストを書くときは、1つまたは2つのメソッドを実行するだけで、他のテストをコメントアウトして、正しく動作することを確認します。すべてがうまく動作し、パスします。次に、すべてのテストを実行するためにすべてのコメントを外すと、テストは非常に高速に実行され、私が自動化しているWebアプリケーションがうまく動作しないため、ロードされていない要素が原因でテストが失敗します。 waitFor{}
ブロックを使用している場合でも。私は、特定の場所でsleep(1000)
を使用することが助けになっていることがわかりましたが、おそらくこの問題に近づくより良い方法があるように感じます。私が働いているWebアプリケーションは、ユーザが実際に制御できない問題の一部であるかもしれないフィールドを何かするときはいつも、ページをたくさんリフレッシュするようです。私のテストのある部分では、フォームを記入する必要がありますが、入力を書き留めた後にページがリフレッシュされるので、以下のコードを書きましたが、すべてのスリープステートメントのためmehのように見えます。geb自動テストでwaitFor {}とsleep()を使用するベストプラクティスは何ですか?
void populateRequiredFields(){
def fName = "Test"
def lName = "User"
def email = "[email protected]"
def question = "Do you even test bro?"
clear.click()
//sleep() to slow down test in order to get correct elements due to page refreshing
sleep(3000)
firstName << fName
sleep(1000)
lastName << lName
sleep(1000)
emailAddress << email
sleep(1000)
veryifyEmail << email
sleep(1000)
questionField << question
sleep(1000)
}
このようにwaitFor {firstName.displayed}を使用して、firstName << fName ??でフィールドを入力します。 – WontonJon