默认情况下,Scala可以在任何样式特征中提供三个断言。您可以使用:
assert用于一般性断言;assertResult区分期望值与实际值;intercept以确保一些代码会引发预期的异常。
如果传递的表达式为true,assert将正常返回。如果是这样false,Scala assert会突然用结束AssertionError。此行为由assertobject中定义的方法提供,该方法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)
}
}