关于编程测试中的断言

关于编程测试中的断言

ID:32763439

大小:57.35 KB

页数:5页

时间:2019-02-15

关于编程测试中的断言_第1页
关于编程测试中的断言_第2页
关于编程测试中的断言_第3页
关于编程测试中的断言_第4页
关于编程测试中的断言_第5页
资源描述:

《关于编程测试中的断言》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、编程断言概述编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设可以将断言看作是异常处理的一种高级形式断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。使用断言可以创建更稳定,品质更好且易于除错的代码当需要在一个值为FALSE时中断当前操作的话,可以使用断言单元测试必须使用断言(Junit/JunitX)除了类型检查和单元测试外,断言还提供了一种确定个种特性是否在程序中得到维护的极好的方法使用断言使我们

2、向按契约式设计更近了一步常见的断言特性前置条件断言:代码执行之前必须具备的特性后置条件断言:代码执行之后必须具备的特性前后不变断言:代码执行前后不能变化的特性断言使用方式断言可以有两种形式lassertExpressionl2assertExpression1:Expression?其中Expression!应该总是一个布尔值,Expression?是断言失败时输出的失败消息的字符串。如果Expression!为假,则抛出一个AssertionError,这是一个错误,而不是—个异常,也就是说是一个不可控制异常(uncheckedException),AsseilionEi

3、Tor由于是错误,所以可以不捕获,但不推荐这样做,因为那样会使你的系统进入不稳定状态。启用断言断言在默认情况下是关闭的,要在编译时启用断言,需要使用source14标记既javacsource14Testjava,在运行时启用断占需要使用・ea参数。要在系统类中启用和禁用断言可以使用・esa和・dsa参数。例如:publicclassAssertExampleOne{publicAssertExampleOne(){}publicstaticvoidmain(Stringargs[]){intx=10;Systemoutprintln(MTestingAssertionth

4、atx==100”);assertx=100:HOutassertionfailed!H;Systemoutprintln(MTestpassed!n);}}如果编译时未加-sourcel4,则编译通不过在执行时未加・ea时输出为TestingAssertionthatx==100Testpassedjre忽略了断言的旧代码,而使用了该参数就会输出为TestingAssertionthatx==100Exceptioninthreadumain,javalangAssertionError:Outassertionfailed!atAssertExampleOnemain(

5、AssertExampleOnejava:6)断言的副作用由于程序员的问题,断言的使用可能会带来副作用,例如:booleanisEnable二false;//assertisEnable=true;这个断言的副作用是因为它修改了程序中变量的值并且未抛出错误,这样的错误如果不细心的检查是很难发现的。但是同时我们可以根据以上的副作用得到一个有用的特性,根据它來测试断言是否打开。publicclassAssertExampleTwofpublicstaticvoidmain(Stringargs[]){booleanisEnab!e=false;//assertisEnable=

6、true;if(isEnable==false){thrownewRuntimeException(HAssertionshoulebeenable「);何时需要使用断言1可以在预计正常情况下程序不会到达的地方放置断言:assertfalse2断言可以用于检查传递给私有方法的参数。(对于公有方法,因为是提供给外部的接口,所以必须在方法中有相应的参数检验才能保证代码的健壮性)3使用断言测试方法执行的前置条件和后置条件4使用断言检查类的不变状态,确保任何情况下,某个变量的状态必须满足。(如age属性应大于0小于某个合适值)什么地方不要使用断言断言语句不是永远会执行,可以屏蔽也可

7、以启用因此:1不要使用断言作为公共方法的参数检查,公共方法的参数永远都要执行2断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返冋值下边是介绍断言的用法:assert是在J2SE14中引入的新特性,assertion就是在代码中包括的布尔型状态,程序员认为这个状态是trueo一般來说assert在开发的时候是检查程序的安全性的,在发布的时候通常都不使用asserto在14中添加了assert关键字和javalangAssertError类的支持。首先,我们有必要从一个例子说起assertpubl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。