4

我正在寻找谷歌测试框架风格的断言,其中像 ASSERT_LT(a, b) 这样的东西将检查 $a 是否小于 $b,如果不是,将打印 $a 和 $b 的值错误信息。到目前为止,我发现的断言只是停止执行,默认情况下不打印任何有用的东西。任何指针?

奖励:我喜欢编写大量断言代码(不仅仅是在测试中),所以如果断言能够快速评估,那就太好了。

上下文:我在使用此代码作为模板编写单元测试时遇到了这个问题。

4

2 回答 2

4

Specs2定义了许多匹配器,例如must be_<=. 起初我认为这些需要集成到规范中,但在匹配器页面的底部,它说它们是模块化功能,“你应该能够在你自己的测试框架中重用”。例如,“您可以重用[traits such as]org.specs2.matcher.MustMatchers 来编写类似的东西 1 must be_==(1) 并返回 Result ”。

ScalaTest也有自己的matchers。例如,one must be < (7)

于 2011-08-23T05:09:50.410 回答
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
于 2011-08-24T18:21:47.847 回答