Scala Language
Testa med ScalaTest
Sök…
Hej World Spec Test
Skapa en src/test/scala
katalogen src/test/scala
, i en fil som heter HelloWorldSpec.scala
. Lägg detta in i filen:
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 ("")
}
}
- Det här exemplet använder sig av
FlatSpec
ochMatchers
, som ingår i ScalaTest-biblioteket. -
FlatSpec
gör det möjligt attFlatSpec
tester i BDD- stilen Beteende-Driven utveckling . I den här stilen används en mening för att beskriva förväntat beteende hos en given kodenhet. Testet bekräftar att koden följer det beteendet. Se dokumentationen för ytterligare information .
Spec Test Cheatsheet
Uppstart
Testerna nedan använder dessa värden för exemplen.
val helloWorld = "Hello World"
val helloWorldCount = 1
val helloWorldList = List("Hello World", "Bonjour Le Monde")
def sayHello = throw new IllegalStateException("Hello World Exception")
Skriv kontroll
För att verifiera typen för en given val
:
helloWorld shouldBe a [String]
Observera att parenteserna här används för att få typ String
.
Lika kontroll
För att testa jämställdhet:
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")
Inte lika kontroll
För att testa ojämlikhet:
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
Längdskontroll
För att verifiera längd och / eller storlek:
helloWorld should have length 11
helloWorldList should have size 2
Undantagskontroll
Så här kontrollerar du ett undantags typ och meddelande:
val exception = the [java.lang.IllegalStateException] thrownBy {
sayHello
}
exception.getClass shouldEqual classOf[java.lang.IllegalStateException]
exception.getMessage should include ("Hello World")
Inkludera ScalaTest-biblioteket med SBT
Använd SBT för att hantera biblioteksberoende , lägg till detta till build.sbt
:
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"
Mer information finns på ScalaTest-webbplatsen .
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow