你是否想告别system.out.println()测试时代,那么就重断言开始,可能你开始会觉得很麻烦,但是你习惯以后你会得心应手。如果你能看明白 boolean?a:b 这个三元运算的话,那么恭喜你断言你基本掌握了,不相信?那么就往下看看
断言机制是支持jdk1.4以上版本。他有个开关功能(下文会介绍),你想打开就开,你想关就关。这个可比满屏幕的输出语句专业多了。
断言表达式
assert expression;
assert expression1 : expression2;
在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。
例子:
assert value > 5 ;
assert accontBalance > 0;
assert isStatusEnabled();
assert a>5:"TEST ASSERT"
何为断然的开关,无非就是传递一个参数 例: java -ea 你的JAVA程序。
- 参数 -esa和 -dsa:
它们含义为开启(关闭)系统类的assertion功能。由于新版本的Java的系统类中,也使了assertion语句,因此如果用户需要观察它们的运行情况,就需要打开系统类的assertion功能 ,我们可使用-esa参数打开,使用 -dsa参数关闭。 -esa和-dsa的全名为-enablesystemassertions和-disenablesystemassertions,全名和缩写名有同样的功能。
- 参数 -ea和 -ea:
它们含义为开启(关闭)用户类的assertion功能:通过这个参数,用户可以打开某些类或包的assertion功能,同样用户也可以关闭某些类和包的assertion功能。打开assertion功能参数为-ea;如果不带任何参数,表示打开所有用户类;如果带有包名称或者类名称,表示打开这些类或包;如果包名称后面跟有三个点,代表这个包及其子包;如果只有三个点,代表无名包。关闭assertion功能参数为-da,使用方法与-ea类似。
-ea和-da的全名为-enableassertions和-disenableassertions,全名和缩写名有同样的功能。
下面表格表示了参数及其含义,并有例子说明如何使用。
参数 |
例子 |
说明 |
-ea |
java -ea |
打开所有用户类的assertion |
-da |
java -da |
关闭所有用户类的assertion |
-ea:<classname> |
java -ea:MyClass1 |
打开MyClass1的assertion |
-da:<classname> |
java -da: MyClass1 |
关闭MyClass1的assertion |
-ea:<packagename> |
java -ea:pkg1 |
打开pkg1包的assertion |
-da:<packagename> |
java -da:pkg1 |
关闭pkg1包的assertion |
-ea:... |
java -ea:... |
打开缺省包(无名包)的assertion |
-da:... |
java -da:... |
关闭缺省包(无名包)的assertion |
-ea:<packagename>... |
java -ea:pkg1... |
打开pkg1包和其子包的assertion |
-da:<packagename>... |
java -da:pkg1... |
关闭pkg1包和其子包的assertion |
-esa |
java -esa |
打开系统类的assertion |
-dsa |
java -dsa |
关闭系统类的assertion |
综合使用 |
java -dsa:MyClass1:pkg1 |
关闭MyClass1和pkg1包的assertion |
其中...代表,此包和其子包的含义。例如我们有两个包为pkg1和pkg1.subpkg。那么pkg1...就代表pkg1和pkg1.subpkg两个包。
另外,Java为了让程序也能够动态开启和关闭某些类和包的assertion功能,Java修该了Class和ClassLoader的实现,增加了几个用于操作assert的API。下面简单说明一下几个API的作用。
ClassLoader类中的几个相关的API:
setDefaultAssertionStatus:用于开启/关闭assertion功能
setPackageAssertionStatus:用于开启/关闭某些包的assertion功能
setClassAssertionStatus: 用于开启/关闭某些类的assertion功能
clearAssertionStatus:用于关闭assertion功能
讲了这么多,给一个例子就全明白了:
public static void main(String[] args) {
int a=5;
assert a==6:"错误";
System.out.println(a);
}
世界最简单的测试,你可以修改 a的值看看不同的效果;很简单。
注意: 首先 断言是不支持继承,如果如果超类没有开启断然,子类开启,那么只执行子类。
断然是可以修改变量值的,什么意思,给大家一个测试断然开始的程序。正好利用断言修改变量值的特性
// public static void main(String[] args) {
// boolean assertFlag=false;
// assert assertFlag=true;
// if(assertFlag==false){
// System.out.println("assert have not opened");
// }else{
// System.out.println("assert is openning");
// }
//
// }
本总结资料来源于网络
分享到:
相关推荐
总结来说,Java异常处理机制提供了一种结构化的方法来处理程序运行时的错误,通过try-catch-finally结构捕获和处理异常,同时,利用断言进行内部逻辑验证,以及日志记录来跟踪程序行为。这样的机制增强了代码的健壮...
【标题】"JAVA基础总结共4页.pdf.zip" 提供的是关于Java编程语言的基础知识的浓缩版教程,可能涵盖了从入门到进阶的关键概念。Java是一种广泛应用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司)开发,...
"java接口自动化测试框架及断言详解" 本篇文章主要介绍了Java接口自动化测试框架及断言详解,通过示例代码详细地介绍了Java接口自动化测试框架及断言详解,对大家的学习或者工作具有一定的参考学习价值。 一、Java...
### Java基础知识和概念总结 #### 1. 访问修饰符:public, private, protected, 默认(Friendly) 在Java中,定义类、方法或变量时可以使用四种访问控制级别:`public`、`private`、`protected`以及默认级别(有时...
### 常见JAVA异常总结 #### 1. `java.lang.NullPointerException` `java.lang.NullPointerException` 是一种运行时异常,表示程序试图在需要对象的地方使用了 `null`。例如,通过对 `null` 引用调用实例方法或访问...
- 断言是一种调试工具,用于检查代码中的预期条件。在开发和测试阶段启用,生产环境中通常关闭,以提高性能。 7. **字符串对象创建**: - `String s = new String("xyz");` 创建了两个对象,一个是字符常量池中的...
这份"Java基础知识精华总结"压缩包,显然是一份集大成的学习资源,旨在帮助初学者或需要巩固基础的开发者系统地掌握Java的核心概念。 首先,文档《Java基础知识笔记总结》可能会涵盖以下内容: 1. **Java简介**:...
总结来说,Java 5.0的注解特性极大地增强了代码的可读性和可维护性,减少了XML配置,简化了框架的使用。通过学习和理解注解,开发者能够更高效地利用Java生态系统中的各种工具和框架,提升开发效率和代码质量。在...
此部分题库主要聚焦于Java语言中的异常处理机制以及如何正确地使用断言来确保代码质量。 ### 异常处理 在Java中,异常处理是一种用于处理运行时错误的机制,它通过`try-catch-finally`块来捕获和处理可能发生的...
在Java中,JUnit是最常用的单元测试框架,它提供了断言方法来判断测试结果是否符合预期,还支持注解(如@Test)使得测试代码更加简洁易读。TestNG是另一个强大的测试框架,它扩展了JUnit的功能,例如并发测试和更...
总结起来,Java的发展历程见证了从简单的Oak到全球最流行的语言之一的转变。其不断演进的特性、广泛的社区支持以及跨平台的兼容性,确保了Java在IT领域的持久影响力。随着技术的不断发展,Java将持续创新,满足新的...
Java 异常种类总结 Java 异常种类总结是指在 Java 编程语言中,各种可能发生的异常类型的总结。这些异常可能会在编程过程中出现,并且可能会导致程序的崩溃或中断。了解这些异常种类可以帮助开发者更好地处理和解决...
包含的文件如`JAVA 正则表达式总结.edg`可能是文档的编辑文件,`文档截图1.jpg`、`文档截图2.jpg`提供了视觉辅助,`文档目录.jpg`帮助理解文档结构,`文档说明.txt`可能提供了文档的使用说明,而`ElecAssist_160201...
【Java服务程序性能测试总结】 在软件开发过程中,性能测试是一项至关重要的环节,尤其是在Java服务程序的场景下,确保服务程序能承受高并发负载并保持高效稳定运行是开发者的重要任务。以下是对整个性能测试过程的...
`AssertionError`是断言错误,用于测试和调试,当一个断言失败时抛出。 `ClassCircularityError`是类循环依赖错误,当初始化类时检测到类之间的循环依赖。 `ClassFormatError`表示读取的类文件格式不符合Java...
总结起来,这个Java体系结构测试库是一个强大的工具,可以帮助开发人员确保代码按照预定的架构规范编写。通过定义和执行规则,它可以增强代码的可读性、可维护性和模块化。同时,提供的示例和说明文档将帮助新用户...
14. **单元测试**:JUnit是Java中最常用的单元测试框架,掌握如何编写测试用例,使用断言进行验证,以及Mockito等工具进行模拟对象的测试。 15. **编程规范与代码质量**:理解SOLID原则,了解代码重构的方法,以及...
Java编程语言在面试中常常涉及一系列核心概念和技术,这些知识点对于理解Java的特性和功能至关重要。以下是基于给定文件内容的一些关键知识点的详细说明: 1. **final, finally, finalize的区别**: - `final`:这...