読者です 読者をやめる 読者になる 読者になる

Play 2.0のサンプルコードにSpecs2を使ってテストを書いてみた

Play 2.0を触ってみようと思って↓のサンプルコードを写経してみた。

ScalaTodoList

で、写経しただけではテストコードが存在しないのでとりあえず書いてみることに。
Play 2.0はドキュメントなどを見る限りUnit specification主体のようですが、今回はどこまで書けるのか気になったのでAcceptance specification形式で書いてみることにしました。


解説?

In Memory Databaseにアクセスしたいので

running(FakeApplication(additionalConfiguration = inMemoryDatabase()))

を使う必要があります。
ただ、Acceptance specification形式だとそのまま利用しようとすると文章部分とコードが混ざってしまってしまい、かつネストが多いコードになってしまいます(なりました)。
何か回避手段があるだろうとSpecs2のUsers Guideを眺めてみたところ、AroundExampleを使えばなんとかできそうだったので使ってみました。
ただ、case class内にTask.createやTask.deleteを記述するのは何か違和感が…何とかする方法ないですかね。


書いてみた感想は、PlayでのAcceptance specification形式の情報はあまり発見できない(そりゃそうだ)ので、素直にUnit specification形式で書いたほうがいいかなーということ。
あと、Playってすごくテストが書きやすいなーと感じました。
Specs2も面白いフレームワークのようなので、Scalaの勉強しながらこっちも触っていくことにします。