Scala 例 Unit Test 単体テスト
Scalaの単体テスト
Scalaの単体テストは、すでにいくつかフレームワークがあるようだ。
Contributed Libraries and Tools | The Scala Programming Language
JUnit
package example.scala.list import org.junit.Test import org.junit.Assert._ class ListTest { case class TestBean(val a: String, val b: Int) @Test def testSortBy() { val test = List[TestBean](TestBean("c", 2), TestBean("a", 3), TestBean("b", 1)) assertEquals(List[TestBean](TestBean("a", 3), TestBean("b", 1), TestBean("c", 2)), test.sortBy(_.a)) assertEquals(List[TestBean](TestBean("b", 1), TestBean("c", 2), TestBean("a", 3)), test.sortBy(_.b)) } }
ScalaTest
- jarをクラスパスにとおせばふつうつかえる。
- Eclipseからの実行は、Scalaアプリケーションとして、TestRunnerを指定することで実行できる。
- org.scalatest.tools.Runner
- まだ便利プラグインがあるわけではないようだ。
package example.scala.list import org.scalatest.FlatSpec import org.scalatest.matchers.ShouldMatchers class ListSpec extends FlatSpec with ShouldMatchers { case class TestBean(val a: String, val b: Int) "SortBy" should "be able to sort by a field of TestBean" in { val test = List[TestBean](TestBean("c", 2), TestBean("a", 3), TestBean("b", 1)) test.sortBy(_.a) should equal(List[TestBean](TestBean("a", 3), TestBean("b", 1), TestBean("c", 2))) test.sortBy(_.b) should equal(List[TestBean](TestBean("b", 1), TestBean("c", 2), TestBean("a", 3))) } }