SeleniumとScalaTestで、ウェブサイトをブラウザからテストしてみる。
テスト対象は、Pyramidでアンケート的に連続してフォーム遷移
で作っておいたもの。
ログインして、いくつかのページでテキストを入力して終わり。
SBTで、SeleniumのJavaライブラリとScalaTestをインストールする。
mkdir -p src/test/scala
mv *.scala src/test/scala
sbt test
でテスト実行。
ScalaTestは、いろいろなテストの書き方をサポートするが、
今回はRubyのRSpec風に使えるFunSpecを使ってみた。
JUnit的な書き方をしたければ、FlatSpecがいいらしい。
FlatSpecは階層化できないが、
今回はテストをグループ化したかったので、FunSpecにした。
テストで何かをアサートで確認するにも、普通にassert()を使ったり、
shouldBe等を使ったり、やり方が多い。
今回は、文として読みやすい後者を使った。
なお、WebDriverのリソースは、
一つのテストごとに作成して開放している。
つまり、リソースがit()のテストごとに独立している。
beforeとafterのブロックを参照。
やや手間が多いが、シンプルで、
並列実行にも向くので採用。