JAVA IDEA 打开assert 设置方式
作者:柠心语冰
这篇文章主要介绍了JAVA IDEA 打开assert 设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
JAVA IDEA 打开assert 设置
概念
(此处为借鉴前辈们的讲解)
断言(Assertion)是Java中一条语句,包含一个布尔表达式,当该布尔值为真,程序则被认为是正确的;当布尔值为假,则系统会抛出错误。
断言两种语句形式
(此处依旧为借鉴前辈们的讲解)
assert Expression1 ; assert Expression1 : Expression2 ;`
Expression1
是一个布尔表达式,作为断言的真假。Expression2
是一个有返回值的表达式,用来提供详细的错误信息。
当没有Expression2时,默认抛出没有详细信息的 AssertionError。
JAVA 中的 assert(idea)
在写assert语句以后运行的时候发现并没有按预期的“报错”,多半是因为没有打开idea中的assert!
关于怎么打开其实很简单:Run—> Edit Configurations —>AsserTest —>VM options —>输入“-ea”就可以了。
但是!
我在打开我的Edit Configurations时。。。并没有“AsserTest”。于是再迷茫了一秒钟后,我自己创建了“AsserTest”,并成功找到“ADD VM options”,然后再弹出的对应个位置输入了“-ea”
然后就可以正常运行Asser了。
这是相关语句以及最后报错的输出:
(解释一下 “isUp(a)” 是我自己写的小函数,此时返回值为 false)
assert isUp( a ) : "is not up!!" ;
JAVA 关键字 assert
为什么assert 两个完全不相等的对象或者基本类型却不报错,例如图下
assert new Object() == new Object(); assert 1 == 2;
预期的会报错,结果是没有任何反应
究其原因其实是jvm 启动未添加 -ea 参数用来开启断言 一般来说,通过IDE开发工具(IDEA)在执行测试方式时会主动打开 -ea
java -ea ...省略... -<className>
但如果没有使用这些工具将面临比较尴尬的困境, 而且问题比较隐蔽不容易察觉 所以建议避免使用assert执行测试方法,改用Junit Assertions.assert*()执行测试方法
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。