Scalatra + ScalaTestでunit test

公式ドキュメントの記載通りに設定すれば動く。

ScalaTest | Testing | Scalatra guides

設定

project/build.scalaのlibraryDependenciesに、次を追加。

"org.scalatra" %% "scalatra-scalatest" % "2.2.2" % "test"

テストコード

package test.app

import org.scalatra.test.scalatest._
import org.scalatest.FunSuite

class TestServletTests extends ScalatraSuite with FunSuite {
  addServlet(classOf[TestServlet], "/*")

  test("simple get") {
    get("/") {
      status should equal (200)
      body should include ("Hello")
    }
  }
}

テスト実行

$ sbt
> test

特定のテストだけ動かしたい時は、次のようにする。

$ sbt
> test-only org.acme.RedSuite org.acme.BlueSuite
> test-only *RedSuite

細かい点については、ScalaTestのページを参照。

ScalaTest