5

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

框架是实现它还是它只是提供assert并且我应该assertEquals从 jUnit 本身使用?

4

3 回答 3

7

有“断言”方法,例如

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

请注意使用三等号,当测试失败时,它会提供比双等号更好的错误消息。此外,如果测试失败,第二种情况提供了要打印的提示。最好使用它来包含一些原本不明显的数据值,例如,如果使用循环进行测试,则循环计数。

然后是 ShouldMatchers 方法,例如

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

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

于 2012-10-15T06:52:54.670 回答
0

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

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

(请注意,expectResultexpectScalaTest 1.x 中)。

于 2012-10-15T09:15:40.627 回答
-1
assert(Actual.equals(Expected))
于 2020-02-06T19:06:44.620 回答