2016-03-23 16 views
0

私はGEBが主張して自分自身を繰り返す必要があることを知ります。gebでドライするには?

browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript') 

再度使用することができ、ルックアップ仕様を保存するためのパターンは何ですか?私の多くが主張する前に、これが必要とされる。例えば

ルックアップは「アサート」と一緒に実行されるため、ブラウザが特定の状態にあるときに実行する必要があります(つまり、一度ルックアップを実行して結果を保存することはできません)。コンテキストの場合

、ここでは完全な例です:

Given(~'I should see the example error response on the page') { -> 
    assert browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript').text() =~ /\}/ 
    assert browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript').text() =~ /\{/ 
} 
+1

ページを使用していますか?そして私はこれがキュウリだと思いますか?あなたはhttps://github.com/geb/geb-example-cucumber-jvmを見てきました –

+0

私はgroovyとこの完全なスタックを初めて使い、対処する既存のプロジェクトを手渡しました。私はそれがページを使用しているとは思わない。キュウリです。しかし、私は答えとして投稿する解決策を見つけました。 GEBの例にリンクしてくれてありがとう(ただし、それは何でも!?!)。 – russellr

+0

ちょうどPagesを見て、行きたいと思うようです。私はそれを将来のリファクタリングのためにTO DOリストに載せます。 – russellr

答えて

0

DRYであるために、私は今これをやっている:

私はこのように使用することができます
class ExampleErrorResponse { 
    static Object get(browser) { 
     return browser.$("h3", text: "Example Error Response").siblings("div").find("pre", 'data-language':'javascript'); 
    } 
} 

Given(~'I should see the example error response on the page') { -> 
    assert ExampleErrorResponse.get(browser).text() =~ /\}/ 
    assert ExampleErrorResponse.get(browser).text() =~ /\{/ 
} 

この方法で問題が発生した場合はコメントしてください。

関連する問題