默认情况下,Scala可以在任何样式特征中提供三个断言。您可以使用:
assert
用于一般性断言;assertResult
区分期望值与实际值;intercept
以确保一些代码会引发预期的异常。
如果传递的表达式为true
,assert
将正常返回。如果是这样false
,Scala assert
会突然用结束AssertionError
。此行为由assert
object中定义的方法提供,该方法Predef
的成员隐式导入每个Scala源文件中。
/** * 断言使用 */ object Asserts extends FlatSpec with Matchers { def main(args: Array[String]): Unit = { //assert 一般断言 val left = "1" val right = "1" assert(left == right) //将预期与实际值区分开来 val a = 5 val b = 3 assertResult(2) { a - b } //以确保一些代码抛出预期的异常 val s = "hi" assertThrows[IndexOutOfBoundsException] { //结果类型:Assertion s.charAt(4) } scalaTestAsserts(true) booleanAssert(4) valueAsserts(2) } def scalaTestAsserts(res0: Boolean) { true should be(res0) } def booleanAssert(res0: Int) { val v1 = 4 v1 shouldEqual res0 } def valueAsserts(res0: Int): Unit = { assert(res0 == 1 + 1) } }