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”就可以了。

JAVA IDEA 打开assert 设置方式_第1张图片

但是!

我在打开我的Edit Configurations时。。。并没有“AsserTest”。于是再迷茫了一秒钟后,我自己创建了“AsserTest”,并成功找到“ADD VM options”,然后再弹出的对应个位置输入了“-ea”

然后就可以正常运行Asser了。

这是相关语句以及最后报错的输出:

(解释一下 “isUp(a)” 是我自己写的小函数,此时返回值为 false)

assert isUp( a ) : "is not up!!" ;

JAVA IDEA 打开assert 设置方式_第2张图片

JAVA 关键字 assert

为什么assert 两个完全不相等的对象或者基本类型却不报错,例如图下

assert new Object() == new Object();
assert 1 == 2;

预期的会报错,结果是没有任何反应

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u2MWKt7J-1653550160393)(./img/image-20201229164442264.png)]

究其原因其实是jvm 启动未添加 -ea 参数用来开启断言 一般来说,通过IDE开发工具(IDEA)在执行测试方式时会主动打开 -ea

java -ea ...省略... -

但如果没有使用这些工具将面临比较尴尬的困境, 而且问题比较隐蔽不容易察觉 所以建议避免使用assert执行测试方法,改用Junit Assertions.assert*()执行测试方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(JAVA IDEA 打开assert 设置方式)