一个好的用于生产的断言类?Java';s相当于Groovy';什么是权力主张?
我不喜欢java一个好的用于生产的断言类?Java';s相当于Groovy';什么是权力主张?,java,groovy,assert,contracts,preconditions,Java,Groovy,Assert,Contracts,Preconditions,我不喜欢javaassert关键字,因为它并不总是在生产代码中启用。我正在寻找一个好的“ProductionAssert”类来使用,它总是运行著名的断言 一位候选人是。它很不错,但有点有限(例如,noassertEquals(),assertNull(),assertGreaterEquals()) 一种选择是包括jUnit或其他测试框架。。。但是我不愿意仅仅为了一个简单的断言类而依赖于整个测试框架 如果我用Groovy编程,我会使用 Java有好的“ProductionAssert”类吗 附言
assert
关键字,因为它并不总是在生产代码中启用。我正在寻找一个好的“ProductionAssert”类来使用,它总是运行著名的断言
一位候选人是。它很不错,但有点有限(例如,noassertEquals()
,assertNull()
,assertGreaterEquals()
)
一种选择是包括jUnit或其他测试框架。。。但是我不愿意仅仅为了一个简单的断言类而依赖于整个测试框架
如果我用Groovy编程,我会使用
Java有好的“ProductionAssert”类吗
附言-一个选择是最终检查类似于。。。但我现在要找的是绝对最小的,零摩擦的,只需在构建过程中不做任何更改的情况下把它放到类中。。。我不确定合同是否符合该描述。Spring在Spring核心模块中有一个
我倾向于使用Spring的类:
显然,如果你不使用spring,那么这不会让你的船浮起来,我不确定它是否比guava one好很多。我会使用Junit。其目的是使用这些测试 另一种选择是确保始终打开断言。i、 如果你不能控制你的生产环境。如果程序未运行,则可能导致程序失败
boolean assertOn = false;
assert assertOn = true;
if (!assertOn)
throw new AssertionError("Assertions must be turned on");
第三种选择是自己编写这些方法。通常只有两行代码。这样他们就可以做你想做的任何事情。你可以将valid4j与hamcrest matchers一起使用(在Maven Central上找到,网址为org.valid4j:valid4j)。默认提供程序抛出AssertionError,但如果需要,您可以注册自己的自定义全局策略 对于前提条件(比如断言): 使用“确保”对后置条件的类似支持 另请注意:您也可以使用相同的库进行常规输入验证(即抛出可恢复异常): 链接:
boolean assertOn = false;
assert assertOn = true;
if (!assertOn)
throw new AssertionError("Assertions must be turned on");
import static org.valid4j.Assertive.*;
require(x, greaterThan(0)); // throws RequireViolation extends AssertionError
import static org.valid4j.Validation.*;
validate(argument, isValid(), otherwiseThrowing(InvalidException.class));