yan's Handicraft

作成したフリーソフトを公開
Home » PC/システム開発 » Scalatra のテスト

Scalatra のテスト

5月 21st, 2013 Posted in PC/システム開発, scala, Scalatra

Scalatraのテストを試してみました。
Scalatraの本家サイト”Scalatra guides” の Testing あたりに、 説明があるので、それをもとに試してみました。

2013-5-21時点では、Scalatest を使う方法と Specs2 を使う方法とが説明されています。

感想とメモ

  • APサーバを起動せずに、単体テストとして、サーブレットの動作確認が簡単にでき、お手軽。(Scalatest 、Specs2 両方とも)
    • org.scalatra.test.EmbeddedJettyContainer をいう trait をテストクラスが実装していて、 Jettyのコンテナ(のモックかな?)がサーブレットコンテナを提供してくれている模様。
    • 本家サイトのサンプルとほとんど変わりませんが、 書いてみたテストソースはyangiYAのGitHubのこのあたりにあります
  • 私の好みとしては、Scalatest でテストするタイプ。Specs2 のほうは、なんだか記述がまどろっこしいように感じてしまいます。 ( Specs2 のほうは、BDD(Behavior Driven Development , (振る舞い駆動)) で最近の流行だとは思います。 )
  • Scalatest のほうは、依存を追加しないとコンパイルできませんでした。
    project/build.scala に以下を追加してから、sbt で gen-ideaeclipse を実行しました。
"org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test",
  • テストクラスが実装している org.scalatra.test.Client のおかげで、 テストクラスから、HTTPアクセス結果の「HTTPステータス」「HTTPレスポンス」などにアクセスできるようになっています。 単体テストとして、HTTPの結果を確認するテストコードを書けるようになっている思想のようだ

以上、簡単な感想でした。
画面でいちいち動作確認せずに、簡単な疎通レベルのテストが 単体テストとしてかけそうでいいなと思います。(Rubyist にとっては、当然なのかな)

Leave a Reply

*