我在寻找谷歌的testing framework风格的断言,其中类似ASSERT_LT(a,b)将检查$ a是否小于$ b,如果不是,将打印$ a和$ b在错误信息中。到目前为止我发现的断言只是停止执行,而不打印默认情况下有用的任何东西。任何指针?奖金:我喜欢写断言重的代码(不只是在测试中),所以如果断言很快评估,那将会很不错。更多信息隐藏在斯卡拉
上下文:我在使用this code作为模板编写unittests时遇到了这个问题。
我在寻找谷歌的testing framework风格的断言,其中类似ASSERT_LT(a,b)将检查$ a是否小于$ b,如果不是,将打印$ a和$ b在错误信息中。到目前为止我发现的断言只是停止执行,而不打印默认情况下有用的任何东西。任何指针?奖金:我喜欢写断言重的代码(不只是在测试中),所以如果断言很快评估,那将会很不错。更多信息隐藏在斯卡拉
上下文:我在使用this code作为模板编写unittests时遇到了这个问题。
Specs2定义了一些匹配器,如must be_<=
。起初我认为这些都需要集成到一个规范中,但是在matchers page的底部,它表示它们是模块化功能,“你应该能够在你自己的测试 框架中重用”。作为一个例子,“您可以重复【性状如] org.specs2.matcher.MustMatchers
写这样1 must be_==(1)
和 什么得到的结果回来”。
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
您链接到ScalaTest框架。你是说当ScalaTest断言失败时,它不打印有用的错误信息?或者你是否说你想要ScalaTest之类的东西而不实际使用ScalaTest?如果后者,你怎么不想使用它? –
我在说ScalaTest似乎没有我想要的一切。这可能是我不了解ScalaTest中可用的内容,但我看到的唯一提供信息的操作符是“===”,它只能在声明相等时使用。如果断言失败,我想断言一个不等式并获得一条信息错误消息。 – emchristiansen