Scala Language
ScalaTestによるテスト
サーチ…
Hello World Specテスト
HelloWorldSpec.scala
という名前のファイルで、 src/test/scala
ディレクトリにテストクラスを作成します。これをファイルの中に入れます:
import org.scalatest.{FlatSpec, Matchers}
class HelloWorldSpec extends FlatSpec with Matchers {
"Hello World" should "not be an empty String" in {
val helloWorld = "Hello World"
helloWorld should not be ("")
}
}
- この例では、 ScalaTestライブラリの一部である
FlatSpec
とMatchers
を使用しています。 -
FlatSpec
は、テストをBehavior-Driven Development(BDD)スタイルで記述することを可能にします。このスタイルでは、特定のコード単位の予想される動作を記述するためにセンテンスが使用されます。このテストは、コードがその動作に従っていることを確認します。 詳細については、ドキュメントを参照してください 。
仕様テストチートシート
セットアップ
以下のテストでは、これらの値を例として使用しています。
val helloWorld = "Hello World"
val helloWorldCount = 1
val helloWorldList = List("Hello World", "Bonjour Le Monde")
def sayHello = throw new IllegalStateException("Hello World Exception")
型チェック
指定されたval
型を確認するには:
helloWorld shouldBe a [String]
ここで角括弧はString
型を取得するために使用されることに注意してください。
等価チェック
等価性をテストするには:
helloWorld shouldEqual "Hello World"
helloWorld should === ("Hello World")
helloWorldCount shouldEqual 1
helloWorldCount shouldBe 1
helloWorldList shouldEqual List("Hello World", "Bonjour Le Monde")
helloWorldList === List("Hello World", "Bonjour Le Monde")
等しくない
不等式をテストするには:
helloWorld should not equal "Hello"
helloWorld !== "Hello"
helloWorldCount should not be 5
helloWorldList should not equal List("Hello World")
helloWorldList !== List("Hello World")
helloWorldList should not be empty
長さチェック
長さおよび/またはサイズを確認するには:
helloWorld should have length 11
helloWorldList should have size 2
例外チェック
例外のタイプとメッセージを確認するには:
val exception = the [java.lang.IllegalStateException] thrownBy {
sayHello
}
exception.getClass shouldEqual classOf[java.lang.IllegalStateException]
exception.getMessage should include ("Hello World")
SBTにScalaTestライブラリを含める
SBTを使用してライブラリの依存関係を管理する場合は、 build.sbt
にこれを追加しbuild.sbt
。
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"
詳細は、ScalaTestサイトを参照してください。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow