断言是一种经典的调试与测试方式。
断言其实就是在程序中的一条语句(assert),它对一个boolean表达式进行测试,一个正确程序必须保证该表达式的值为true,如果该值为false,则说明程序已处于不正确的状态,运行将被终止并退出——即 断言用于保证程序最基本、 最 关键的正确性。
环境
断言检查通常在开发和测试阶段开启。而在软件发布后 为提高 运行 性能,断言检查会被关闭。因此能够随时自由地选择开启或关闭断言检查显得非常重要,而这正是Java断言特性的重要功能之一。
开启的方式
默认状态下断言检查是关闭的,
-ea(e nablea ssertions) 开启断言检查,
-da (d isenableablea ssertions) 用于关闭断言检查
在Eclipse中启用断言的方法:
在Eclipse中启用断言的方法:
方法1、Window-->Preferences-->Java-->Installed JREs
选择当前正在使用的JDK条目,点击 Edit... 按钮,进入JRE Definition界面: 在 Default VM Arguments 栏输入 -ea (或 -enableassertions) 参数。
方法2、Run-->RunConfigurations,选择当前程序,并点击进入Arguments标签页,在VM arguments 栏输入 -ea(-enableassertions)参数。
以上两个方法,前者针对全局设置、后者仅 仅 对当前运行的程序有效。
DEMO
package com.yan.test;
public class TestException {
public static void main(String[] arg) {
testMethod(new String[] { "yan", "xu", "dong" });
testMethod("yan");
}
private static void testMethod(String temp) {
for (int i = 0; i < 5; i++) {
System.out.println(temp + i);
}
}
private static void testMethod(String[] temp) {
for (int i = 0; i < 5; i++) {
assert temp.length == 5 : "数据长度不正常";
System.out.println(temp[i]);
}
}
}
Result
Exception in thread "main" java.lang.AssertionError: 数据长度不正常
at com.yan.test.TestException.testMethod(TestException.java:22)
at com.yan.test.TestException.main(TestException.java:7)
分享到:
相关推荐
【etlunit-log-assertion-3.1.2.zip】是一个包含ETL(Extract, Transform, Load)测试工具的压缩包,版本为3.1.2。ETL是数据处理流程中的关键部分,用于从各种数据源抽取数据,转换为适合目标系统格式,然后加载到...
描述中提到的"Package assert is a Basic Assertion library used along side native go testing",暗示了这是一个用于配合Go标准库中的`testing`包进行测试的简单断言库。 在Go的标准测试库`testing`中,虽然已经...
"etlunit-assertion-3.0.6.zip"可能是一个用于测试和验证ETL(Extract, Transform, Load)过程的库,其中包含了断言机制,这在确保数据处理正确性方面起着关键作用。 一、Java I/O流基础 1. 流的概念:Java I/O流...
在软件测试领域,断言(Assertion)是一种验证预期结果是否符合实际结果的重要工具。它用于检查程序中的某个条件是否满足,以确保代码的正确性。在JavaScript测试框架中,特别是那些用于前端自动化测试的框架,如...
git clone https://github.com/builtbyeleven/laravel-assertion-completions.git ~ /Library/Application \ Support/Sublime \ Text \ 3/Packages/laravel-assertion-completions 屏幕截图 虫子 请提出或提出。
SystemVerilog Assertion断言理论与实践.rar SystemVerilog_Assertions_应用指南-源代码.rar uvm-1.2.rar VCS_labs.rar Verdi 基础教程.rar Verilog RTL 编码实践.rar [Cadence.IC设计.全资料教
类型断言 声明值的类型。 安装 npm install type-assertion 用法 var assert = require ( 'type-assertion' ) assert ( { } , 'object' ) assert ( [ ] , 'object' ) //=> TypeError: expected object assert ( 'ok...
快照断言 断言与存储在文件中的快照匹配的字符串。 环境变量可用于保存而不是声明快照。 设置 要使用安装,请运行: npm install snapshot-assertion --save-dev 原料药 目录 功能快照 断言与存储在文件中的快照...
1. **JSON Path Assertion**:基于JsonPath表达式进行断言,JsonPath类似于XPath,用于从JSON对象中提取数据。通过JsonPath表达式,你可以检查特定的JSON路径是否存在或者值是否符合预期。 2. **JSON Extractor**:...
基于断言的设计(Assertion Based Design)是一种在集成电路(IC)设计中应用的技术,旨在通过断言来增强设计的验证和验证过程。本文将探讨基于断言的设计的基本概念、历史背景、实际应用以及它在新设计和现有设计中...
这一现象背后涉及的知识点主要包括断言的概念、断言的作用、断言失败的原因分析以及如何解决“Debug Assertion Failed!”的问题。 ### 断言的概念 断言是软件开发中的一个重要概念,用于在代码中嵌入条件检查,以...
SystemVerilog语言提供了多种断言构造,例如立即断言、延迟断言和顺序断言。这些断言构造允许设计者以声明性方式捕捉复杂的时序行为,并且还能够涵盖系统设计中的并发和时序元素。与传统的硬件描述语言相比,...
OWSM-custom-assertion-serviceexecutionreporter 此存储库包含自定义 OWSM 断言和策略(适用于 FMW 12c - 12.1.3)的源代码,可以附加这些源代码以将服务的每次执行报告给 JMS 目标
### System Verilog Assertion (SVA) 简介 #### 一、SVA 在验证环境中的角色 在现代数字设计的验证过程中,测试平台扮演着关键的角色,它负责完成三大核心任务: 1. **产生激励**:即创建一系列输入信号以驱动...
这本书详细介绍了断言技术,包括并发断言和立即断言的概念、构建块、简单序列、序列的边沿定义、逻辑关系、表达式、时序关系、时钟定义、禁止属性以及操作块和蕴含操作符的各种用法。这些内容对于希望深入理解和实践...
对一个线性状态机的时序进行断言,使用的是Systemverilog语言,是初学SVA验证的入门。 线性状态机有IDEL,WAIT0,CNT1,,,CNT6,WAIT6,NEXT_BLK共16个state 资源说明:包含DUT代码,断言代码,断言说明pdf,以及...
网关提供商身份断言组降低 针对博客的伴随项目,有关在Apache Knox中添加简单的身份声明提供程序 克隆或分叉此项目,并使用以下命令构建它: mvn清洁包装 然后,您可以通过将生成的jar文件添加到{GATEWAY_HOME} / ...
SystemVerilog断言手册 SystemVerilog Assertions Handbook 是一本专注于SystemVerilog断言的书籍,主要涉及用于形式验证和动态验证的技术。这本书由VhdlCohen Publishing出版,作者对SystemVerilog断言在设计验证...
- 断言(assertion):断言操作符是SVA的核心,如$rose、$fell用于检测信号的上升沿和下降沿。 - 覆盖(coverage):coverproperty用于统计设计属性的覆盖情况。 ### 断言在实际设计中的应用 在设计验证过程中,SVA...
【描述】中提到,"OptimizeQ Add Assertion-crx插件"具备定义断言的能力。在软件开发和测试领域,断言是一个重要的概念,它用于验证代码的预期行为。通过设置断言,我们可以确保程序在特定点的行为符合预期,这对于...