Scalaのテスティングフレームワーク、ScalaTestを使いはじめる

Specs2が一番スマートに書けそうなので、まずはEclipseにて導入。しかしどうやっても実行できない。わけが分からない。sbtとか導入するんでもいいけど、なんだか面倒になってEclipse内で完結できるのがないかと探したらScalaTestというのが見つかった。こっちはJUnitに似ていてAssertとか書く必要がある。ちょっとダサい。


やり方はそんなに難しくない。

  1. ScalaTestのEclipseプラグインを入れる
  2. ScalaTestのjarをダウンロード
  3. プロジェクトには、ScalaTestのjarを追加。
  4. テストコードを書く(下参照)
  5. テストコードの入っているパッケージを選んで、右クリック>「実行」−「ScalaTest パッケージ」

なお、他プロジェクトのクラスをテストしたい場合は、

  1. テストプロジェクトで右クリック>「プロパティー
  2. Javaのビルドパス」>「プロジェクト」タブを開いて、テスト対象のプロジェクトを追加する
  3. テスト対象のクラスをimportしてテストコードを書く

以上です。

ちなみにコードはこんな感じになる。

テストクラス

package numberaddtest

import numberadd._
import org.scalatest.FlatSpec

class NumberAddTest extends FlatSpec {
	"A NumberAdd" should "return 3 if 2 and 1 are given" in {
		val na = new NumberAdd
		assert(na.add(1, 2) == 3)
	}
}

テスト対象クラス

package numberadd

class NumberAdd {
	def add(a:Int, b:Int) = a + b
}