在scalatest中断言等于

时间:2012-10-15 02:14:47

标签: scala testing

我想在scalatest中使用与jUnit的assertEquals类似的东西。

框架是否实现了它,或者只提供assert,我应该使用jUnit本身的assertEquals

3 个答案:

答案 0 :(得分:6)

有'断言'方法,例如

class EqualsTest extends FunSuite {
  test("equals") {
    assert(1 === 1)
    assert(2 === 2, "The reason is obvious")
  }
}

请注意使用triple-equals,它在测试失败时提供比double-equals更好的错误消息。此外,第二种情况提供了在测试失败时打印的提示。最好使用它来包含一些本来不明显的数据值,例如:如果使用循环测试则为循环计数。

然后是ShouldMatchers方法,例如

class EqualsTest extends FunSuite with ShouldMatchers {
  test("equals") {
    1 should be (1)
  }
}

这通常是首选,因为它易于阅读。然而,学习使用它只是有点困难 - API中有一些角落和缝隙。你不能提出一个暗示解释。

答案 1 :(得分:0)

ScalaTest的一大优点是它不会强迫您按照自己的方式行事 - 它允许您选择最适合您特定情况和偏好的方法。除了你已经收到的其他答案的方法,还有(和我个人的偏好):

class EqualsTest extends FunSuite {
  test("equals") {
    expectResult(1) { 1 }
  }
}

(请注意,ScalaTest 1.x中expectResultexpect

答案 2 :(得分:-1)

assert(Actual.equals(Expected))