Java陷阱之assert关键字 :
http://lavasoft.blog.51cto.com/62575/43735/
assert的基本用法:
http://www.cnblogs.com/wardensky/p/4307848.html
在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,
Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言检查,
则需要用开关-enableassertions或-ea来开启。
assert关键字语法很简单,有两种用法:
1、assert <boolean表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出AssertionError,并终止执行。
2、assert <boolean表达式> : <错误信息表达式>
如果<boolean表达式>为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>。
测试主类1:
package juc.asserts;
/**
* 测试断言
* @author donald
* 2017年3月3日
* 上午8:57:56
*/
public class TestAssert {
public static void main(String[] args) {
int a = 1;
assert a < 0;//正确往下执行,否则中断程序
System.out.println("assert int a value:"+a);
//断言失败,输出断言表达式的错误信息
assert a > 0:"assert int a value smaller then 0 is fail.";
System.out.println("assert int a value smaller then 0 is ok");
}
}
控制台输出:
Exception in thread "main" java.lang.AssertionError
at juc.asserts.TestAssert.main(TestAssert.java:11)
从控制台来看,断言失败,中断程序
测试主类2:
package juc.asserts;
/**
* 测试断言
* @author donald
* 2017年3月3日
* 上午8:57:56
*/
public class TestAssert {
public static void main(String[] args) {
int a = 1;
assert a > 0;//正确往下执行,否则中断程序
System.out.println("assert int a value:"+a);
//断言失败,输出断言表达式的错误信息
assert a < 0:"assert int a value smaller then 0 is fail.";
System.out.println("assert int a value smaller then 0 is ok");
}
}
控制台输出:
assert int a value:1
Exception in thread "main" java.lang.AssertionError: assert int a value smaller then 0 is fail.
at juc.asserts.TestAssert.main(TestAssert.java:14)
从控制太输出来看,断言失败,输出断言表达式的错误信息。
开启断言检查,用RUN AS 或DEBUG AS 配置VM参数,我用的是Debug如下:
- 大小: 49.3 KB
分享到:
相关推荐
可以为Java复杂的测试提供简单的方法!可以加快开发进度
基于Rspec的Java 8测试框架 样品测试 Spectre使用Spec后缀运行所有方法 package org.eck.spec ; import static org.eck.spec.Spectre.describe ; import static org.eck.spec.Spectre.before ; import static org....
junit-assert-collector 我编写的Java库是为了补充我在Savvis / CenturyLink最初开发的测试框架而开发的测试框架。 该库实质上扩展了JUnit库的org.junit.rules.ErrorCollector类,并且提供了大多数(如果不是全部)...
Camunda平台声明 使用Camunda Platform Assert可以轻松地以典型的单元测试方法推动BPMN流程和CMMN案例的状态。 只需编写如下代码assertThat (instance) . isWaitingAt( " UserTask_InformCustomer " );assertThat ...
Plausing:基于 AssertJ 的 Java 合理性测试 合理性测试提供了一种以与细节无关的方式测试代码的方法。 PojoMappers 的合理性测试 Plausing 假设: 有一种映射方法可以将 SOURCE pojo 转换为 TARGET pojo。 TARGET...
本书全面、系统、循序渐进地讲述了Java语言的基础知识,涵盖了用来编写、编译、测试和调试Java程序以及提高编程技巧所需的全部内容。书中包含了Java 2, 版本1.3中新增的特征,其中最重要的是assert关键字、基于通道...
在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中IDL是什么? 92.ISO9000和CMM是什么?IS09000和CMM(软件能力成熟度模型)认证是国际上通用的软件质量评估方法.CMM的...
紧急情况一个受RSpec和Cucumber启发的Java测试框架,其目标是通过表达性测试来帮助实现更好的设计给我看看代码! import com.xdd.Spec ;import static org.junit.Assert.* ;public class CalculatorSpec extends ...
1.4新增关键字(语法),用于测试boolean表达式状态,可用于调试程序。 使用方法 assert 表达式>,表示如果表达式为真(true),则下面的语句执行,否则抛出AssertionError。 另外的使用方式assert 表达式>:表达式>,...
assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。 24、GC是什么? 为什么要有GC? GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方...
介绍两个JAVA语言开源的JSON对比工具。 1,对于单元测试对比JSON,可使用文档中第一个工具集。 2,对于API响应JSON数据,需要对比时使用文档中第二个工具集,可以指定忽略噪声字段,比较强大。 不废话:...
FEST-Swing是一个用于Swing GUI应用程序功能测试的java开源类库。支持模拟用户交互( 鼠标操作和键盘输入)。支持JDK中的所有Swing组件。提供简洁、强大的API来创建和维护GUI功能测试。
assert宏用于为程序增加诊断功能,它可以测试一个条件并可能使程序终止。在执行语句: assert(表达式); 时,如果表达式为0,则在终端显示一条信息: Assertion failed: 0, file 源文件名, line 行号 Abnormal ...
abego GuiTestingSwing轻松用Java编写GUI测试(用于Swing)概述使用abego GuiTesting Swing库,以与编写“无头” JUnit测试相同的方式为Swing应用程序快速编写GUI测试。GT接口GUITesting Swing通过GT界面提供了...
assert (关键字) 断言 [ә'sә:t] ' (java 1.4 之后成为关键字) associate n.关联(同伴,伙伴) [ә'sәuʃieit] attribute n.属性(品质,特征) [ә'tribju:t] boolean (关键字) 逻辑的, 布尔型 call n.v.调用; 呼叫...
6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这...
Java库,允许使用简单注释在给定的TestNG项目中收集禁用的TestNG测试。 常见用法示例: @Listeners(DisabledTestsListener.class) public class InventoryTests { @Test @DisabledTestsCollector(testsPath = "/...
让您无需编写代码就能搞定的自动化验收/接口测试,基于Gauge的全栈测试平台 要求 Maven 3+ Java 1.8+ 测量 主意 量具插件:量具Java,量具Java,量具Java Maven,量具智能想法,量具html报告 DSL参考 句法 G-Stack...
assertion检查通常在开发和测试时开启。为了提高性能, 在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math...