ScalaTest

この文章は2011年6月10日時点(Ver.1.5)の ScalaTest 公式ウェブページの和訳です。
最新の情報については、原文を参照ください。

http://www.scalatest.org/


少ないコードで、より明瞭に


ScalaTest は、Java プラットフォームのためのオープンソーステストフレームワークです。
数行のテストコードを書くだけで、あなたの生産性を向上させるよう設計されています。
また、このテストコードによって、あなたの意図をより明確に表現できます。
import org.scalatest.FlatSpec
import org.scalatest.matchers.ShouldMatchers

class StackSpec extends FlatSpec with ShouldMatchers {

 // 「スタック」は「後入れ先出し」方式で値をPOPする
 "A Stack" should "pop values in last-in-first-out order" in {
   val stack = new Stack[Int]
   stack.push(1)
   stack.push(2)
   stack.pop() should equal (2)
   stack.pop() should equal (1)
 }

 // 空のスタックにPOPを実施した場合は、NoSuchElementException を投げる
 it should "throw NoSuchElementException if an empty stack is popped" in {
   val emptyStack = new Stack[String]
   evaluating { emptyStack.pop() } should produce [NoSuchElementException]
 }
}

ScalaTestは、Scala または Java のコードをテストすることができます。
ポピュラーな開発ツール(JUnit, TestNG, Ant, Maven など)と共用することで、新規/既存の Scala/Java プロジェクトのテストを、より高く、生産的なレベルに引き上げてくれます。

開発者が変われば、ソフトウェア作成のアプローチも変わるものです。
ですから、ScalaTest は異なったスタイルのテストが行えるように設計されています。
ScalaTest は、いくつかの trait を提供します。あなたは最も生産的だと感じるやり方で、これらを組み合わせればよいのです。
たとえば、上記の例は、ビヘイビア駆動開発(BDD)スタイルの一例です。
これを実行すれば、あなたはこのソフトの非公式仕様を、テストによって確認できます。
$ scala -cp scalatest.jar org.scalatest.tools.Runner -p . -o -s StackSpec
Run starting. Expected test count is: 2
StackSpec:
A Stack
- should pop values in last-in-first-out order
- should throw NoSuchElementException if an empty stack is popped
Run completed in 96 milliseconds.
Total number of tests run: 2
Suites: completed 1, aborted 0
Tests: succeeded 2, failed 0, ignored 0, pending 0
All tests passed.

BDDをやる気なんてない?問題ありません。
ScalaTest には、たくさんの選択肢(trait)があります。
もしあなたが、Scala の開発でも JUnit や TestNG でテストを書き続けたいと思っているなら、ScalaTest はそのための trait を持っています。
もしあなたが、ユニットテストのための高階関数が好きなら、または結合テストや受け入れテストを実施したいのなら、ScalaTest はそのための trait を持っています。
これは、ほんの一例です。
要するに、ScalaTest は非常に高い柔軟性を持っています。
そして、たとえビルトイン trait のいずれも、あなたのニーズとマッチしなかったとしても、テストを設計する上で有用な、多くの拡張を提供します。

試してみない手はないでしょう?
まず、ScalaTest をダウンロードし、次に、クイックスタートをご覧になってください。

サブページ (1): クックスタート
Comments