ASSERTS-断言
scala

默认情况下,Scala可以在任何样式特征中提供三个断言。您可以使用:

  • assert 用于一般性断言;
  • assertResult 区分期望值与实际值;
  • intercept 以确保一些代码会引发预期的异常。

如果传递的表达式为trueassert将正常返回。如果是这样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)
  }

}


暂无评论