guava-testlib未来版本JAR

时间:2012-10-09 01:38:11

标签: java unit-testing testing null guava

今天,目前的番石榴版本似乎是:

release is 13.0.1, August 3, 2012.

但我检查了以下来源:

git clone https://code.google.com/p/guava-libraries/

并且对我看起来像极其有用的测试工具很感兴趣:

http://code.google.com/p/guava-libraries/source/browse/guava-testlib/src/com/google/common/testing/NullPointerTester.java

我试图验证我的所有方法都不像Doug Lea(http://gee.cs.oswego.edu/dl/html/vita.html)那样厌恶null,除非Joshua Bloch错误地引用他(http://www.youtube.com/watch?v=ZeO_J2OcHYM#t=26m35s) “空敌对”。

无论如何,NullPointerTester.java似乎是完美的,所以我试图将它构建到我的项目中。

遵循依赖关系(NullPointerTester - &gt; Invokable<?, ?>, - &gt; ...例如),因为我遇到@since 14.0的类,基本上属于未来版本

构建Guava的下一个/未来版本的自包含JAR的最佳方法是什么,所有依赖项都由我来处理?注意:git ...

上的来源似乎是“全部”

你可以在这里停止阅读。

我迫不及待想要做这样的事情,我觉得这很酷:

注意:缺少的是“安全检查”,如“如果构造函数已被设为私有,请检查我无法反映 - 无论如何都要调用它......”

如果我是一个更好的程序员,我会做出贡献,但这就是我能做的全部而且非常差,尽管意图应该清楚了吗?

static boolean isDefaultConstructorDisabled(Class<?> type) {
  boolean isDefaultConstructorDisabled = false;
  Constructor<?>[] declaredConstructors = type.getDeclaredConstructors();
  Constructor<?> defaultContructor = declaredConstructors[0];
  defaultContructor.setAccessible(true);
  try {
    defaultContructor.newInstance();
  } catch (InvocationTargetException invocationTargetException) {
    Throwable cause = invocationTargetException.getCause();
    if (cause instanceof UnsupportedOperationException
        && cause.getMessage().contains(
            ErrorMessage.DefaultConstructor.DISABLED)) {
      isDefaultConstructorDisabled = true;
    }
  } catch (Throwable throwable) {
    throwable.printStackTrace();
  }
  return isDefaultConstructorDisabled;
}

2 个答案:

答案 0 :(得分:2)

你试过看Maven吗?

http://search.maven.org/#browse%7C-723200679

我认为guava-testlib包含NullPointerTester。你可以抓住13.0.1罐子。

http://search.maven.org/#browse%7C1590928164

答案 1 :(得分:1)

如果您克隆了整个Guava存储库,那么v13.0.1标记将具有guava-testlib,特别是NullPointerTester,从13.0.1起,它应该可以工作 - 不是吗?