草庐IT

BeanShell断言

全部标签

java - 用于生产的好的断言类? Java 相当于 Groovy 的 PowerAssert?

我不喜欢javaassert关键字,因为它并不总是在生产代码中启用。我正在寻找一个很好的“ProductionAssert”类来使用,它总是运行注意到的断言。一个候选人是Guava'sPreconditions.它很不错,但有点受限(例如,没有assertEquals()、assertNull()、assertGreaterEquals())。一种替代方法是包括jUnit或其他测试框架……但我不愿意仅仅为了一个简单的断言类而依赖整个测试框架。如果我用Groovy编程,我会使用PowerAssert.Java有好的“ProductionAssert”类吗?附言-一种选择是最终检查类似Ja

java - 如何在 Tomcat 中启用 Java 断言

我想在我的Spring网络应用程序中使用Javaassert关键字,主要是在我的域类上(检查构造函数中的不变量),但我看不到如何启用运行时断言检查。对于普通的java应用程序,我会在java命令中使用-ea开关,但我不知道如何使用Tomcat等来做到这一点。这是推荐的做法,还是我应该使用Spring框架中的“Assert”类?但是,我宁愿让我的域类不受Spring依赖。 最佳答案 对于tomcat,将-ea添加到JAVA_OPTS(所有java进程启动),或者甚至更好到CATALINA_OPTS(只对web应用引擎).阅读文件cat

java - 断言失败错误 : null on boolean method

我正在测试一个将两个对象作为参数并返回boolean的方法.当我使用和assertTrue或assertFalse在有问题的方法上,我得到以下测试失败:junit.framework.AssertionFailedError:null.我知道我正在传递无效参数并且可能会导致NPE在方法中,但这不是正在发生的事情,而是测试失败了。注意:我正在使用boolean而不是Boolean.示例代码:类:publicclassMyClass{publicbooleanfoo(MyObject1lhs,MyObject2rhs){//doSomething//returnsomething}}测试:

java - 在 Maven 构建的项目中启用断言

我有一个使用Maven构建的java程序,我需要启用assert关键字。理想情况下,我想在maven构建命令中启用断言。 最佳答案 Maven编译并构建java代码。当您实际运行Java代码时会出现断言错误,因此使用Maven时您不能这样做除非您使用maven插件来启动java代码,否则您必须向jvm提供-eaexec:java将-ea传递给commandlineargument万无一失如果你打算执行测试,那么配置sure-fire插件将-ea传递给jvmorg.apache.maven.pluginsmaven-surefire-

java - 使用 Selenium 断言滚动条的存在(webdriver java cucumber)

我有一个需要测试的响应式网站。如果网站转到平板电脑的窗口大小,我希望测试检查是否有水平滚动条。根据设计,它们永远不会出现在平板电脑上。有没有人有一段伪代码来使用SeleniumWebdriverJavaCucumber断言水平滚动条的存在? 最佳答案 您可以使用javascriptExecutor测试它:垂直滚动条:booleanscrollBarPresent=((JavascriptExecutor)driver).executeScript("returndocument.documentElement.scrollHeigh

java - 断言集合包含自定义类的对象,它不会覆盖 equals/hashcode

我们有一个包含多个字段的自定义类,出于业务领域的原因,我们不能为此重写equals/hashcode方法然而,在单元测试期间,我们应该断言集合是否包含此类的项目ListcustomObjectList=classUnderTest.methodUnderTest();//createcustomObjectwithfieldssettotheverysamevaluesasoneoftheelementsincustomObjectList//weshouldassertherethatcustomObjectListcontainscustomObject但是,到目前为止,我们还没有

java - 如何在代码中为 junit 测试禁用 Java 断言

如何在代码中为junit测试禁用java断言(不是junit断言)我已经编写了一个junit测试,但是当我运行它时,它并没有像预期的那样失败,因为断言已启用,而它们并未在生产中。有没有办法只在代码中禁用断言,以便它在IDE中运行时以及作为Maven的一部分构建时按预期工作 最佳答案 在Java中(在单个类中禁用断言)要在Java中启用或禁用断言检查,请使用setClassAssertionStatus在类加载器中。例如:Foo.class.getClassLoader().setClassAssertionStatus(Foo.cl

java - 如何断言表达式不编译

我编写了一个框架,增加了对其接口(interface)进行类型安全调用的可能性。现在,在编写JUnit测试时,我想表明编译器现在会检查先前导致运行时错误的特定表达式。//thisdoesnotcompile,becausenamePropisoftypePropertyIntegername=interface.getProperty(nameProp);可能最好只是简单地注释掉该代码并让它保持原样。我只是想知道是否可以使用一些测试框架来编写类似的东西assertCompilationError(){Integername=interface.getProperty(nameProp)

java - 在 Java Shell 中启用断言

C:\Users\Malvolio>jshell|WelcometoJShell--Version9.0.1|Foranintroductiontype:/helpintrojshell>assert(false)jshell>如何让JavaShell在断言失败时抛出AssertionError? 最佳答案 使用命令选项启动它:jshell-R-ea 关于java-在JavaShell中启用断言,我们在StackOverflow上找到一个类似的问题: http

java - 断言空检查

断言语句应该保留用于测试并在生产中禁用,这似乎已被广泛接受,因为到那时错误应该已经解决,并且启用断言会影响性能。然而,对于带有if语句的空检查来说,肯定也是如此。为什么这段代码被认为适合生产if(x!=null){x.setId(idx);if(y!=null){if(y.id==x.id){x.doSth();}}else{//handleerror}}else{//handleerror}但这段代码不是?(假设启用断言)try{assert(x!=null);x.setId(idx);assert(y!=null);if(y.id==x.id){x.doSth();}}catch(