Scala中提供更多信息

时间:2011-08-23 03:56:39

标签: unit-testing scala assert googletest

我正在寻找Google testing framework风格的断言,ASSERT_LT(a,b)之类的东西会检查$ a是否小于$ b,如果不是,则会打印$的值错误消息中的a和$ b。到目前为止我发现的断言只是在没有打印任何有用的默认情况下停止执行。有什么指针吗?

额外奖励:我喜欢编写断言密集的代码(不仅仅是在测试中),所以如果快速评估断言会很好。

背景信息:我在使用this code作为模板编写单元测试时遇到过这种情况。

2 个答案:

答案 0 :(得分:4)

Specs2定义了许多匹配器,例如must be_<=。起初我认为这些需要集成到规范中,但在matchers page的底部,它表示它们是模块化功能“你应该能够在自己的测试中重用 框架“。例如,”您可以重复使用 [{1}} 等特征来编写 org.specs2.matcher.MustMatchers 和 得到一个结果“。

ScalaTest也有自己的matchers。例如,1 must be_==(1)

答案 1 :(得分:0)

def assert_<[A <% Ordered[A]](a: => A, b: => A) { 
  assert(a < b, "Assertion failed: expected %s < %s" format (a, b)) 
}

scala> assert_<(2, 1)
java.lang.AssertionError: assertion failed: Assertion failed: expected 2 < 1