【问题标题】:Java comparison library [closed]Java比较库[关闭]
【发布时间】:2013-01-18 16:38:05
【问题描述】:

是否有一个 Java 库可以让我进行比较操作,例如

try {
  verify(a).isEqualTo(b);
  verify(a).isGreaterThan(b);
  verify(a).contains(b);
catch (AssetionError e) {
  ..
}

我在想guava,但找不到任何东西,可能是我看的不够仔细;)

【问题讨论】:

  • 您在寻找单元测试吗?
  • 也许这是个坏主意。你为什么要图书馆做这样的事情?
  • 有 JUnit、Mockito...
  • 我相信比较完全取决于类型。假设您有一个实现这些功能的父类,您可以构建一个完整的自定义对象树,可以“比较”。但最终它取决于 a 和 b 的类型,正如 rmlan 已经说过的那样。
  • @rmlan - a 和 b 是任意类

标签: comparison guava java


【解决方案1】:

Hamcrest 之类的声音可能很有趣。例如

 assertThat(actualPrice, greaterThan(minimumPrice));

它通常用于单元测试,但它只是提供DSL,并且它的使用不限于测试域。

【讨论】:

  • 是的,我希望在基于 jUnit 的测试框架中实现它,看起来不错。
【解决方案2】:

你是说先决条件吗? Guava 有一系列可以在方法中使用的前提条件。例如,您可以使用:

     Preconditions.checkArgument(count > 0, "must be positive: %s", count);

如果检查失败,将抛出带有相关消息的IllegalArgumentException。

http://guava-libraries.googlecode.com/svn/tags/release03/javadoc/com/google/common/base/Preconditions.html

【讨论】:

    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多