Assert.assertEquals作用
junit.framework包下的Assert提供了多个断言方法. 主用于比较测试传递进去的两个参数.
Assert.assertEquals();及其重载方法: 1. 如果两者一致, 程序继续往下运行. 2. 如果两者不一致, 中断测试方法, 抛出异常信息 AssertionFailedError .
查看源码, 以Assert.assertEquals(int expected, int actual)为例:
/*** Asserts that two ints are equal. 断言两个int是相等的*/
static public void assertEquals(int expected, int actual) {assertEquals(null, expected, actual);
}
可以看到里面调用了assertEquals(String message, int expected, int actual)方法:
/*** Asserts that two ints are equal. If they are not* an AssertionFailedError is thrown with the given message.* 如果不抛出带有 message 的异常(AssertionFailedError)信息, 则表明两者相等*/
static public void assertEquals(String message, int expected, int actual) {assertEquals(message, Integer.valueOf(expected), Integer.valueOf(actual));
}
可以看到, 这里把int类型封箱成为Integer类型. 注释说, 会抛异常, 但这里没有. 没关系, 我们接着看里面调用: assertEquals(String message, Object expected, Object actual)方法:
/*** Asserts that two objects are equal. If they are not* an AssertionFailedError is thrown with the given message.* 如果不抛出带有 message 的异常(AssertionFailedError)信息, 则表明两者相等(这里比较的是Object对象)*/
static public void assertEquals(String message, Object expected, Object actual) {if (expected == null && actual == null) {return;}if (expected != null && expected.equals(actual)) {return;}failNotEquals(message, expected, actual);
}
两个if语句, 判断了两者相等的情况: 引用(地址)相等或者内容相等. 如果这两种if情况都不命中, 那么表明1参和2参实际是不相等, 所以代码会往下执行failNotEquals(String message, Object expected, Object actual)方法,并在此方法中抛出异常, 接下来就比较简单了:
static public void failNotEquals(String message, Object expected, Object actual) {fail(format(message, expected, actual));
}public static String format(String message, Object expected, Object actual) {String formatted = "";if (message != null && message.length() > 0) {formatted = message + " ";}return formatted + "expected:<" + expected + "> but was:<" + actual + ">";
}
/**
* Fails a test with the given message.
*/
static public void fail(String message) {if (message == null) {throw new AssertionFailedError();}throw new AssertionFailedError(message);
}
以上可以看出, 最终是由fail(String message)这个方法抛出异常信息!!
Assert.assertEquals()使用方法:
使用, 示例代码:
Assert.assertEquals(true, arry.contains("hello"));
Assert.assertEquals(39991L, aa.getLong("key3", 0L));
Assert.assertEquals(true, bb.getBoolean("key4", false));
Assert.assertEquals(5.3f, cc.getFloat("key5", 0.f));
Assert.assertEquals(99, dd.getInt("key6", 1));
Assert.assertEquals("如果打印本信息, 证明参数不相等", 10L, 10);
按照源码分析, 我们可以把一个预期结果作为1参传递进去. 2参传递我们需要测试的方法. 然后执行. 相等, 代码继续往下执行, 不相等, 中断执行, 抛出异常信息!!!
略作一提:
Assert.assertSame(Object expected, Object actual)方法:
查看源码, 其比较的是引用地址是否相等, 并没有对内容进行比较:
/*** Asserts that two objects refer to the same object. If they are not* the same an AssertionFailedError is thrown.*/
static public void assertSame(Object expected, Object actual) {assertSame(null, expected, actual);
}
/*** Asserts that two objects refer to the same object. If they are not* an AssertionFailedError is thrown with the given message.*/
static public void assertSame(String message, Object expected, Object actual) {if (expected == actual) {return;}failNotSame(message, expected, actual);
}
Assert.assertEquals作用相关推荐
- Assert.assertEquals
作用:junit.framework包下的Assert提供了多个断言方法. 主用于比较测试传递进去的两个参数. Assert.assertEquals();及其重载方法: 1. 如果两者一致, 程序继 ...
- java junit Assert断言用法示例: Assert.assertEquals(期望的结果,运算的结果)
计算demo /*** 计算器类*/ public class Calculator {/*** 加法* @param a* @param b* @return*/public int add (in ...
- python assert的作用
一.python assert的作用: 根据Python 官方文档解释(https://docs.python.org/3/reference/simple_stmts.html#assert), & ...
- C++工作笔记-C++中assert的作用
原文地址:https://blog.csdn.net/gogokongyin/article/details/51114952 assert()这个函数在C++中用的比较少,但是有以次面试被问及到了, ...
- 关于Assert.assertEquals报错的处理
在熟悉hutool工具包时出现的关于Assert.assertEquals()的报错及其解决方法 前提(也是主要问题):用testCompile导入junit4.12 build.gradle文件 p ...
- 【Java】Assert.assertEquals断言
Assert.assertEquals 1.概述 在开发中,我们需要测试时候,不可能把全部程序运行一次,在此我们就需要通过编写单元测试来对程序进行测试了.在 Assert 类里面有大量的静态方法,本篇 ...
- Assert.assertEquals()方法参数详解
junit.framework包下的Assert提供了多个断言方法. 主用于比较测试传递进去的两个参数. Assert.assertEquals();及其重载方法: 1. 如果两者一致, 程序继续往下 ...
- Assert.assertEquals的使用方法和注意事项
Assert.assertEquals的使用方法和使用注意 文章目录 Assert.assertEquals的使用方法和使用注意 前言 一.Assert运行环境需要什么导入什么jar包? 二.使用步骤 ...
- java之Assert.assertEquals详细分析
目录 前言 1. 源码 2. 结合实例 3. 参数设置 前言 具体的参数设置中可以有 在此需要引入import org.junit.Assert; 提供多个断言方法 主要是比较两者参数的不同 如果相同 ...
最新文章
- 清空、重设input框
- Linux 中/etc/profile、~/.bash_profile 环境变量执行过程
- python网络编程100例_python网络编程
- android studio光标变成黑块,解决Android Studio 代码无提示无颜色区分问题
- Google搜索简单介绍
- Python 从入门到放弃(一)
- EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE
- 挖矿病毒audiodg.exe\taskhost.exe溯源与手动查杀方法
- Unity Shader 实现简单的压扁效果
- 批归一化《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》
- android 环信客服修改自己的头像
- 英语发音规则---E字母(总结)-[复习中]
- 6.1-6.30推荐文章汇总
- 敏捷开发创始人_开发人员和技术创始人如何将他们的想法转化为UI设计
- 究竟线框图为什么要画,以及如何画
- 中国的程序员只能支撑到30岁么。
- 【无标题】不出门怎么连接公司电脑,这6个工具让你不用来回跑。
- 1119 Pre- and Post-order Traversals (PAT甲级)
- 在android上启动分屏的方法
- 抓娃娃营销工具 uniapp
热门文章
- springboot web 前端开发入门教程
- css 字间距离_css 字体字符间距设置
- 开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM(一)
- python随机数生成十个数字的成语_python小白也可以分分钟爬取微博数据,并生成有个性的词云,你get到了吗?...
- Python单元测试-Unittest(四)
- Python考试评级
- socketpair的用法和理解
- Ubuntu Linux更新的几种命令
- 24小时伦敦金走势图分析
- php的orm框架,PHP有什么ORM框架?