java中断言是什么 java中断言是做什么用的
本篇文章给大家谈谈java中断言是什么,以及java中断言是做什么用的对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
java中断言是做什么用的
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设
可以将断言看作是异常处理的一种高级形式
断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真
可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。
使用断言可以创建更稳定,品质更好且易于除错的代码
当需要在一个值为FALSE时中断当前操作的话,可以使用断言
单元测试必须使用断言(Junit/JunitX)
除了类型检查和单元测试外,断言还提供了一种确定个种特性是否在程序中得到维护的极好的方法
使用断言使我们向按契约式设计更近了一部
高级Java断言的用途
Java断言的作用:
1.编写代码时,总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。
2.使用断言可以创建更稳定、品质更好且不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言。单元测试必须使用断言(Junit/JunitX)。
3.除了类型检查和单元测试外,断言还提供了一种确定各种特性是否在程序中得到维护的极好的方法。
Java中断言的用法
JDK1.4中引入的一个新特性之一就是断言(assert),为程序的调试提供了强有力的支持,以下的文档根据SUNTEC内容及相关内容组成。
源代码:
/**
* Simple examples of the use of the new assertion feature in JDK1.4
*
*@author S.Ritter 16/7/2001
**/
public class AssertExample{
public static void main(String[] args){
int x= 10;
if(args.length> 0){
try{
x= Integer.parseInt(args[0]);
} catch(NumberFormatException nfe){
/* Ignore*/
}
}
System.out.println("Testing assertion that x== 10");
assert x== 10:"Our assertion failed";
System.out.println("Test passed");
}
}
由于引入了一个新的要害字,所以在编译的时候就需要增加额外的参数,要编译成功,必须使用JDK1.4的Javac并加上参数'-source 1.4',例如可以使用以下的命令编译上面的代码:
javac-source 1.4 AssertExample.java
以上程序运行使用断言功能也需要使用额外的参数(并且需要一个数字的命令行参数),例如:
java-ea AssertExample 1
程序的输出为:
Testing assertion that x== 10
Exception in thread"main" java.lang.AssertionError:
Our assertion failed
at AssertExample.main(AssertExample.java:20)
由于输入的参数不等于10,因此断言功能使得程序运行时抛出断言错误,注重是错误,这意味着程序发生严重错误并且将强制退出。断言使用boolean值,假如其值不为true则抛出AssertionError并终止程序的运行。
由于程序员的问题,断言的使用可能会带来副作用,例如:
boolean isEnable=false;
//...
assert isEnable=true;
这个断言的副作用是因为它修改程序变量的值并且没有抛出错误,这样的错误假如不细心检查很难发现。但是同时我们可以根据以上的副作用得到一个有用的特性,根据它测试是否将断言打开了。
/**
* Simple examples test enable assertion feature in JDK1.4
*
*@author Cherami 25/4/2002
**/
public class AssertExample2{
public static void main(String[] args){
boolean assertEnable=false;
assert assertEnable=true;
if(assertEnable==false){
throw new RuntimeException("Assertions should be enable");
}
}
}
假如我们不使用-ea参数运行上面的程序,则控制台将输出:
Exception in thread"main" java.lang.RuntimeException:
Assertions should be enab
le
at AssertExample.main(AssertExample.java:14)
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中断言是什么和java中断言是做什么用的的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!