Scala Language
Testen met ScalaTest
Zoeken…
Hallo Wereld Spec-test
Maak een testklasse in de map src/test/scala
, in een bestand met de naam HelloWorldSpec.scala
. Plaats dit in het bestand:
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 ("")
}
}
- Dit voorbeeld maakt gebruik van
FlatSpec
enMatchers
, die deel uitmaken van de ScalaTest-bibliotheek. -
FlatSpec
kunnen tests worden geschreven in de stijl van gedragsgedreven ontwikkeling (BDD) . In deze stijl wordt een zin gebruikt om het verwachte gedrag van een gegeven code-eenheid te beschrijven. De test bevestigt dat de code zich aan dat gedrag houdt. Raadpleeg de documentatie voor aanvullende informatie .
Spec Cheatsheet
Opstelling
De onderstaande tests gebruiken deze waarden voor de voorbeelden.
val helloWorld = "Hello World"
val helloWorldCount = 1
val helloWorldList = List("Hello World", "Bonjour Le Monde")
def sayHello = throw new IllegalStateException("Hello World Exception")
Typ vinkje
Om het type voor een gegeven val
te verifiëren:
helloWorld shouldBe a [String]
Merk op dat de haakjes hier worden gebruikt om het type String
te krijgen.
Gelijke controle
Om gelijkheid te testen:
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")
Niet gelijk check
Ongelijkheid testen:
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
Lengte controleren
Om lengte en / of maat te verifiëren:
helloWorld should have length 11
helloWorldList should have size 2
Uitzonderingen controleren
Om het type en bericht van een uitzondering te verifiëren:
val exception = the [java.lang.IllegalStateException] thrownBy {
sayHello
}
exception.getClass shouldEqual classOf[java.lang.IllegalStateException]
exception.getMessage should include ("Hello World")
Voeg de ScalaTest-bibliotheek toe aan SBT
Gebruik SBT om de bibliotheekafhankelijkheid te beheren , voeg dit toe aan build.sbt
:
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"
Meer details zijn te vinden op de ScalaTest-site .
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow