在scalatest中断言等于

mar*_*gio 5 testing scala

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

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

Ric*_*777 7

有'断言'的方法,如

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

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

然后是ShouldMatchers方法,例如

class EqualsTest extends FunSuite with ShouldMatchers {
  test("equals") {
    1 should be (1)
  }
}
Run Code Online (Sandbox Code Playgroud)

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