「java断言工具类」java断言如何用

博主:adminadmin 2023-01-01 16:33:08 51

今天给各位分享java断言工具类的知识,其中也会对java断言如何用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中断言的用法

第一步:定义一个断言,如:

int number=-28; assert (number0):"负数不能计算平方根";//此断言是假的,所以会输出后面内容,之后会报错

第二步:在断言的类中右击选择“Run As”,之后选择” Run Configuration“;

第三步:选择 Arguments 选项卡;

第四步:在 VM arguments 文本框中输入” -ea“来运行断言;

输出结果:

「java断言工具类」java断言如何用

高级Java断言的用途?

断言是在Java1.4中引入的。它能让验证假设。如果断言失败(即返回false),就会抛出AssertionError(如果启用断言)。

Java开发中什么时候使用断言?

Myeclipse中单元测试断言例子:

首先,建立Web Project,工程名为:JunitDemo,我选择的是Java EE 5。

然后建立包,包名为:demotest。

其次,在包下面建立一个Java CLass,也就是Java类,类名为:JunitDemo

下一步是在JunitDemo.java上面点击右键----NEW----OTHER,然后找到Java------JUint,然后里面就选择JUint Test Case。

如图:

这里,setup和teardown打上勾。

包就选择demotest,这样就和JuintDemo在一个包下面,Name就写 JunitDemoTest,好了。点击FINISH完成。,这个过程中就会自动安装Junit  3的包。

JunitDemoTest.java的内容为:

package demotest;

import junit.framework.TestCase;

public class JunitDemoTest extends TestCase {

protected void setUp() throws Exception {

super.setUp();

}

protected void tearDown() throws Exception {

super.tearDown();

}

public void testReturnstring() {

JunitDemo jd = new JunitDemo();

this.assertEquals("I'm good", jd.returnstring());

}

public static void main(String args[]){

System.out.println("测试环境。");

}

}

然后就是RUN   as- -- Junit Test。这是看结果就好了,进度条为绿色就表示为,通过了,红色就是没有通过。

如图:

java中断言是做什么用的

编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设

可以将断言看作是异常处理的一种高级形式

断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真

可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。

使用断言可以创建更稳定,品质更好且易于除错的代码

当需要在一个值为FALSE时中断当前操作的话,可以使用断言

单元测试必须使用断言(Junit/JunitX)

除了类型检查和单元测试外,断言还提供了一种确定个种特性是否在程序中得到维护的极好的方法

使用断言使我们向按契约式设计更近了一部

程序设计里面的断言是什么???Java里面的assert,assert.h又是什么???

(一)首先明确:

java断言Assert是jdk1.4引入的。

jvm 断言默认是关闭的。

断言是可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。

断言只适用于复杂的调试过程。

断言一般用于程序执行结果的判断,千万不要让断言处理业务流程。

(二)判断eclipse是否开启了断言,代码如下:

public class AssertTest {

public static void main(String[] args) {

boolean isOpen = false;

assert isOpen=true; //如果开启了断言,会将isOpen的值改为true

System.out.println(isOpen);//打印是否开启了断言

}

}

执行上面代码,如果打印 true说明已经启用了断言,如果为 false 则没有启用断言。

如果没有启用断言,则按按照下面方法开启断言。

(三)eclipse中开启断言

选择菜单:Run --- Run... --- 选择 Arguments 选项卡

在 VM arguments 文本框中输入: -ea 注意 中间没有空格,如果输入 -da 表示禁止断言。

然后关闭该窗口,提示保存,然后保存就开启了断言。如下图:

再次执行第二步操作,如果打印true,说明开启断言成功。

如果禁止断言,则按第二步操作中,删除 -ea 或者将 -ea 改为 -da 即可。

(四)断言使用

第 1 种使用方法:

public static void main(String[] args) {

boolean isOk = 12;

assert isOk;

System.out.println("程序正常");

}

因为 12 显然是错误的,所以执行结果抛出异常:Exception in thread "main" java.lang.AssertionError

如果把 12 改为 12 则程序能顺利执行,打印 “程序正常”

第 2 种使用方法:

public static void main(String[] args) {

boolean isOk = 12;

try{

assert isOk : "程序错误";

System.out.println("程序正常");

}catch(AssertionError err){

System.out.println(err.getMessage());

}

}

assert 后面跟个冒号表达式。如果冒号前为 true,则冒号后面的被忽略。

如果冒号前为false,则抛出AssertionError , 错误信息内容为冒号后面的内容,上面程序执行结果就是打印:"程序错误"

(五)有关断言的更多参数:

-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

java assertion ... 的用法

一、assertion的语法和语义

J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的调试、测试方式,本文将深入解析assertion功能的使用以及其设计理念,并给出相关的例子 。

assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身、有的是通过库函数等。另外,从理论上来说,通过assertion方式可以证明程序的正确性,但是这是一项相当复杂的工作,目前还没有太多的实践意义。

在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。下面简单介绍一下Java中assertion的实现。

1.1) 语法表示

在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

assert expression1;

assert expression1: expression2;

在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。

1.2) 语义含义

在运行时,如果关闭了assertion功能,这些语句将不起任何作用。如果打开了assertion功能,那么expression1的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象。如果assertion语句包括expression2参数,程序将计算出expression2的结果,然后将这个结果作为AssertionError的构造函数的参数,来创建AssertionError对象,并抛出该对象;如果expression1值为true,expression2将不被计算。

一种特殊情况是,如果在计算表达式时,表达式本身抛出Exception,那么assert将停止运行,而抛出这个Exception。

1.3) 一些assertion例子

下面是一些Assert的例子。

assert0 value;

assert0 value:"value="+value;

assertref != null:"ref doesn’t equal null";

assertisBalanced();

1.4) 编译

由于assert是一个新关键字,使用老版本的JDK是无法编译带有assert的源程序。因此,我们必须使用JDK1.4(或者更新)的Java编译器,在使用Javac命令时,我们必须加上-source 1.4作为参数。-source 1.4表示使用JDK 1.4版本的方式来编译源代码,否则编译就不能通过,因为缺省的Javac编译器使用JDK1.3的语法规则。

一个简单的例子如下:

javac -source 1.4 test.java

1.5) 运行

由于带有assert语句的程序运行时,使用了新的ClassLoader和Class类,因此,这种程序必须在JDK1.4(或者更高版本)的JRE下运行,而不能在老版本的JRE下运行。

由于我们可以选择开启assertion功能,或者不开启,另外我们还可以开启一部分类或包的assertion功能,所以运行选项变得有些复杂。通过这些选项,我们可以过滤所有我们不关心的类,只选择我们关心的类或包来观察。下面介绍两类参数:

参数 -esa 和 -dsa:

它们含义为开启(关闭)系统类的assertion功能。由于新版本的Java的系统类中,也使了assertion语句,因此如果用户需要观察它们的运行情况,就需要打开系统类的assertion功能 ,我们可使用-esa参数打开,使用 -dsa参数关闭。

-esa和-dsa的全名为-enable system assertions和-disenable system assertions,全名和缩写名有同样的功能。

参数 -ea和-ea:

它们含义为开启(关闭)用户类的assertion功能:通过这个参数,用户可以打开某些类或包的assertion功能,同样用户也可以关闭某些类和包的assertion功能。打开assertion功能参数为-ea;如果不带任何参数,表示打开所有用户类;如果带有包名称或者类名称,表示打开这些类或包;如果包名称后面跟有三个点,代表这个包及其子包;如果只有三个点,代表无名包。关闭assertion功能参数为-da,使用方法与-ea类似。

-ea和-da的全名为-enable assertions和-disenable assertions,全名和缩写名有同样的功能。

java断言工具类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java断言如何用、java断言工具类的信息别忘了在本站进行查找喔。

The End

发布于:2023-01-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。