「Javaの鉱脈」でGeb(じぇぶ)の記事を書きました
WEB+DB PRESS の Vol.85 で、E2E テストの記事を書いたので是非読んでくださし。
2015/2/24 発売ですので、既に購入頂いてる方も多いと思います。
電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。
今回の記事における対象読者について
Selenium は知ってるけど WebDriver の API 辛すぎワロタという方を対象に記事を書きました。僕もそうです。
WebDriver の API は本当に本当に使い辛いのですが Geb なら、それが大きく低減されますので是非一度さわってみて欲しいですね。
jQuery に似てるけど所々違う様な感じがする API 越しに DOM を検証するのは便利ですよ。それによって大切な何かを失ってる感は確かにあります。
僕としては特に意図していなかったのですが、Vol.85 の特集は Selenium ですのでそちらを読んで大筋で Selenium を分かった感じになったところで読んで頂けると無理がありません。非常に読み易い特集ですので、Selenium を既にご存じでも一読の価値があるかと存じます。
記事の内容について
僕のバックグラウンドから言うと「E2E テスト」と呼ぶのではなく「システムテスト」と書きたいのですけども、特集と連載で用語がズレてるのは単に読者を混乱させるだけで益が少ないのでここでは E2E テストと書いています。
Gebは実装言語が Groovy ですので、ちょっと将来的な不安があるような気がしないでもありません。cf. Groovy 2.4 And Grails 3.0 To Be Last Major Releases Under Pivotal Sponsorship
一方で Gradle や Jenkins 等 Groovy を中心としたプロダクトは多くありますので、それらが一斉に Groovy から離れることが出来るかと言うとそういうことは無いかと思います。
それとは別に PageObject ってどうなんかなー…って思っています。 React や Angular のようなガッチガチの JavaScript を使って作ってる UI に対して PageObject を定義するのって、何か 二度手間感あるというか変更の追跡可能性やテスト設計のあり方においてどうなんだろうなーって気持ちはあります。
この辺は上手く整理できなかったので記事としては書けませんでしたけども、この辺について僕とブレインストーミングっつうか、殴り合いというか、議論というかそういうことに興味がある人がいらっしゃいましたら、晩飯くらいは原稿料から出しますのでお相手をお願いしたいですね。
最後に
Geb は具体的なツールなんですけども、そもそもどういう風に考えて使うべきかは別途学習する必要があって、概念的な部分を適切に理解していないと、あとで酷い事になります。
そこで、Geb や Selenium で E2E テストしようかなって皆様におかれましては是非以下の書籍にも目を通して頂きたいと考える次第です。
内容は極めて妥当であるように感じていますが、用語が JSTQB っぽい方面に厳密な感じで扱われているので良く似ているけども厳密には違う単語が沢山でてきてプログラマにはちょっと読み辛いなぁ…と思いながら読みました、ええ。