JAVA IDEA 打开assert 设置
概念
(此处为借鉴前辈们的讲解)
断言(Assertion)是Java中一条语句,包含一个布尔表达式,当该布尔值为真,程序则被认为是正确的;当布尔值为假,则系统会抛出错误。
断言两种语句形式
(此处依旧为借鉴前辈们的讲解)
assertExpression1 ;
assertExpression1 : 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*()执行测试方法
来源:https://blog.csdn.net/qq_41620270/article/details/122817069


猜你喜欢
- 在C语言中,函数名可以当做函数指针传递给形参从而实现回调void f1() { printf("f1()\n"); }v
- Java 8 lambda表达式引入详解及实例eclipse下载安装Help -> EclipseMarketplace ->
- OOP语言的三大特征即:面向对象的三个比较重要的思想封装官话:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口进
- 一、ObjectContext对象上下文Entity SQL 语言 - ADO.NET | Microsoft 官当文档ObjectCont
- 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If
- 逆转交替合并两个链表,即从一个链表的尾指针指向另一个链表的尾指针,依次逆转交替进行合并。下面就通过实例来详细的介绍该逆转交替合并两个链表的思
- 本文实例讲述了JAVA+Struts2获取服务器地址的方法。分享给大家供大家参考。具体实现方法如下:HttpServletRequest r
- 使用流读取、写入文件使用流把文件读取到字节数组://FileMode.Create, FileMode.Append //FileAcces
- <?xml version="1.0" encoding="utf-8"?> <L
- 概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的
- 本文实例为大家分享了Android实现点击获取验证码60秒后重新获取的具体代码,供大家参考,具体内容如下上代码/** * Created b
- 前言跳过废话,直接看正文当年入坑Java是因为它的跨平台优势。那时我认为,”编写一次,处处运行。”这听上去多么牛逼,应该是所有语言发展的终极
- 使用对象初始值设定项初始化对象可以使用对象初始值设定项以声明方式初始化类型对象,而无需显式调用类型的构造函数。下面的示例演示如何将对象初始值
- 1. 准备工作首先我们创建一个 Spring Boot 工程,引入 Web 和 Redis 依赖,同时考虑到接口限流一般是通过注解来标记,而
- 本文实例为大家分享了Android点击获取验证码倒计时的具体代码,供大家参考,具体内容如下package com.loaderman.cou
- 简介java 8 stream作为流式操作有两种操作类型,中间操作和终止操作。这两种有什么区别呢?我们看一个peek的例子:Stream&l
- 在c#中怎样调用VC写的OCX控件,主要有两个关键环节两个关键环节:导入ocx控件,创建实例。1 注册ocx:regsvr32.exe al
- 最近在项目过程中遇到了保存数据的需求,对实体类的部分数据进行保存,打算采用反射+自定义特性来实现数据保存,利于扩展1. 采用反射实现能够灵活
- OpenFileDialog类提供了用户打开文件的功能,它有如下属性:属性InitialDirectory:设置对话框的初始目录。Filte
- 在开发中,我们经常使用到ListView这个控件。Android的API也提供了许多创建ListView适配器的快捷方式。例如A