scalatestと、JUnitのページからそれぞれ必要なjarファイルをダウンロードする。(今回はJUnit4)
結果的にscalatest-1.5.1.zipとjunit-4.9b3.jarが手に入る。
scalatestは解凍するとscalatest-1.5.1.jarがあるので、こいつとjunit-4.9b3.jarをScalaのインストールディレクトリ内にあるlibディレクトリの中に突っ込んで準備完了。
libディレクトリに置いておきたくない場合は、コンパイル時と実行時に毎回クラスパスに該当jarを指定すること。
テストのサンプルソースは以下のとおり。
プログラミング言語Scala 日本語情報サイトの01.02.JUnit 4 と ScalaTest の始め方の物をそのまま使わせていただいています。(先頭にコメントを追加)
//import org.scalatest.junit.AssertionsForJUnit import org.scalatest.junit.JUnitSuite import scala.collection.mutable.ListBuffer import org.junit.Assert._ import org.junit.Test import org.junit.Before /** * ///////////////////////////////////////////////////////////////////////////////////////////// * Scalaでユニットテストのサンプル * クラスパスに、JUnitとscalatestのjarファイルを加えておく必要がある。 * 通常の開発環境であれば、SCALA_HOME/lib/の下に置いておけば自動的にクラスパスに含まれるので楽。 * ///////////////////////////////////////////////////////////////////////////////////////////// * JUnitで実行する場合は以下のコマンド * scala org.junit.runner.JUnitCore ExampleSuite * * scalatestで実行する場合は以下のコマンド * scala org.scalatest.tools.Runner -p . -o -s ExampleSuite * ちなみに、 -p . の . を省けばSwingウインドウが起動する * * どちらで実行する場合でも、JUnitSuiteを継承していれば問題無し。JUnitSuiteはAssertionsForJUnitをtraitとして使っている */ //class ExampleSuite extends AssertionsForJUnit { class ExampleSuite extends JUnitSuite { var sb:StringBuilder = _ var lb:ListBuffer[String] = _ @Before def initialize() { sb = new StringBuilder("ScalaTest は") lb = new ListBuffer[String] } // JUnitスタイルのアサーションを使用 @Test def verifyEasy () { sb.append("かんたん!") assertEquals("ScalaTest はかんたん!", sb.toString) assertTrue(lb.isEmpty) lb += "sweet" try { "verbose".charAt(-1) fail() } catch { case e:StringIndexOutOfBoundsException => // こうなるはず } } // ScalaTest アサーションを使用 @Test def verifyFun() { sb.append("たのしい!") assert(sb.toString == "ScalaTest はたのしい!") assert(lb.isEmpty) lb += "sweeter" intercept[StringIndexOutOfBoundsException] { "concise".charAt(-1) } } }