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*()执行测试方法
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用@ConfigurationProperties注解获取为null的解决方法
在SpringBoot中,当想需要获取到配置文件数据时,除了可以用 Spring 自带的@Value注解外,SpringBoot还提供了一种更加方便的方式:@ConfigurationProperties,但我们在通过通过get方法去取值一直为null,本文介绍了使用@ConfigurationProperties注解获取为null的解决方法2024-09-09
java 发送带Basic Auth认证的http post请求实例代码
下面小编就为大家带来一篇java 发送带Basic Auth认证的http post请求实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-11-11
Mybatis-plus解决兼容oracle批量插入的示例详解
Mybatis-Plus 是一个 MyBatis 的增强工具,提供无侵入、损耗小的 CRUD 操作,本文给大家介绍了Mybatis-plus解决兼容oracle批量插入,文中通过大家介绍的非常详细,需要的朋友可以参考下2024-11-11
Java通过Timer与TimerTask实现定时任务调度方式
本文介绍了如何在Java中使用`Timer`和`TimerTask`类来实现定时任务调度,`Timer`类用于创建计时器并安排任务,而`TimerTask`类用于定义具体的任务,文章详细介绍了这两个类的方法和使用示例,包括创建任务、安排任务、取消任务等操作,通过一个简单的例子2024-12-12
springmvc字符编码过滤器CharacterEncodingFilter的使用
这篇文章主要介绍了springmvc字符编码过滤器CharacterEncodingFilter的使用,具有很好的参考价值,希望对大家有所帮助。2021-08-08


最新评论