Groovy
Geb
GebDay 9

Gebのto()とvia()の話

More than 1 year has passed since last update.


はじめに

これは、Geb Advent Calendar 2016の9日目の記事です。

今日はライトにtoとviaの話します。


to()とvia()


違い

どちらもページ遷移のオブジェクトですが、下記の違いがあります。

メソッド
atが暗黙で呼ばれるか

to
呼ばれる

via
呼ばれない

というわけで要するに、toを利用した際は、暗黙でそのページが正しいページかのチェックが走ります。

なので、遷移先のページでリダイレクトなどがあるのであれば、atチェックが暗黙でかかるとテストが落ちてしまうので、viaを使う必要があります。


蛇足

ちなみに、toはPageObject内でも定義できるのですが、それは下記のように複数ページを指定することができます。

static content = {

loginButton(to: [LoginSuccessfulPage, LoginFailedPage]) { $("input.loginButton") }
}

こちら、最初のページオブジェクトのatチェックが失敗すると、次のページオブジェクトのatチェックが走るようになっています。

公式には何にも書いてないので想像なのですが、この仕様、toメソッドが内部でatチェックしてるおかげで次のページを見に行けてるので、ここにもtoとviaの違いって出てきてるんだなぁと感じます。


参考ドキュメント

http://www.gebish.org/manual/current/#at-checking


まとめ

toとviaはatが違う!