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
사용하면 BDD (Behavior-Driven Development) 스타일로 테스트를FlatSpec
수 있습니다. 이 스타일에서는 주어진 코드 단위의 예상되는 동작을 설명하는 데 문장이 사용됩니다. 테스트 결과 코드가 해당 동작을 준수하는지 확인합니다. 자세한 내용은 설명서를 참조하십시오 .
사양 테스트 Cheatsheet
설정
아래 테스트는 예제에 대해이 값을 사용합니다.
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
다음을 추가하십시오.
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