ScalaTest

2014-05-29T00:00:00+00:00 scala

scalaでテスト書くのにScalaTestっていうのがなかなか良さそうな感じ。という事で使ってみた

build.sbt

sbtを使ってテストを実行できるようにする。んまぁディレクトリ構造はMavenと同様なので

├── build.sbt
└── src
    ├── main
    │   └── scala
    │       └── sample
    │           └── Sample.scala
    └── test
        └── scala
            └── sample
                └── SampleSpec.scala

的な感じな構造で用意しておく。んまぁSample.scalaは適当なクラス定義してメソッドで値を返すようなのを定義しておく

ちょっと外れたけど、build.sbtを書いてプロジェクトの設定周りとかをやらないといけない

// 入れないとscala2.10が参照されてエラーになるっぽい
scalaVersion := "2.11.0"

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.1.6" % "test"

src/test/scala/sample/SampleSpec.scala

package sample

import org.scalatest._

class SampleSpec extends FunSpec with Matchers {
  describe("sample") {
    it("say") {
      def sample = new Sample()
      sample should not be (null)
      sample.say() should be ("hoge")
    }
  }
}

ScalaTestにおいてテスト手法な方式として、FlatSpecやらWordSpecやらFunSpecやらあるわけでそれこらへんの違いはSelecting testing styles for your projectあたりを参考に、でMatcher周りとかはUsing matchersとかを参考にすりゃ良い

てな感じで

sbt test

でテストを動かす

まぁ普通にJUnitベースなテスト書きでも良いと思うのですが、ScalaTestのFunSpecを使ってrspecっぽく書きたいとかの需要があるのならこれ使えば良いのはって事で

JAX-RSをやってみる (1) Androidでengine.io