おわりに
ここまで、Gebの基本とベストプラクティスを紹介してきました。Gebの簡潔な記述方法を体験できたのではないでしょうか。
最後に、他のライブラリとの比較を踏まえたGebの使いどころを記述したいと思います。
Gebの使いどころ
読みやすさ、を重視している
Javaでブラウザテストの自動化を行う際は、Seleniumをそのまま利用するだけでなく、SelenideやFluentLeniumを利用することが候補に上がると思います。
その際にGebを選ぶメリットはなんでしょうか。私が考えるポイントは、「読みやすさ」をどの程度重視するかという点です。前述の通り、コードは書いている時間よりも読んでいる時間が長いと一般に言われています。そうであれば、コードを読むことの時間を減らせるよう、意図の伝わりやすい、簡潔な記述にこだわるべきだと考えています。そのような場合にGebを利用すると良いでしょう。
Gebのデメリットと対応策
反面、Gebは他のラッパーライブラリに比較し、IDEのサポートが受けづらいと感じるかもしれません。先述の通りIntelliJ IDEAなどはある程度補完が効きますので、Gebを利用する場合は合わせて利用することを検討して見てください。
Gebを導入するにあたり最大の障害と感じているのは、習得コストが高いことです。Spockをはじめとした関連するライブラリの習得も同時に行うとなるとさらに習得コストの問題は顕著になります。
対応として、GroovyやSpockに慣れていないのであれば、GebとJUnitを利用して導入する、あるいは先にSpockを導入しユニットテストを書いてみる、という段階的な導入をすると良いかと思います。
もしつまづいたら
何かあればGebのTwitterやメーリングリストにぜひ質問を投げて見てください。コミッターの方はとても親切なので助けてくれると思います。英語がハードルが高ければ、日本SeleniumユーザーコミュニティにメールやSlackで質問してくれれば、助けが求められると思います。
それでは、Gebで簡潔なWebのブラウザ自動化を!