博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Junit中Assert.assertEquals()和Assert.assertSame方法有什么异同
阅读量:6861 次
发布时间:2019-06-26

本文共 545 字,大约阅读时间需要 1 分钟。

1)提供的接口数量不完全相同。

assertEquals支持boolean,long,int等等java primitiveType变量。
assertSame只支持Object。

 

2)比较的逻辑不同,结果可能不同。

assertSame是对象直接比较。assertEquals能利用被比较对象提供的比较逻辑来进行比较。
使得同样的条件下,两者的运行结果不一定相同。
简单解释如下:
assertEquals(Object A,  Object B) 的比较逻辑:
如果 A,B都是Null,返回true。否则调用 A.equals(B)来判断。

assertSame(Object A, Object B)的比较逻辑:

以A == B运算的结果来判断。

A.equals(B) 和 A==B 的差别在于。

如果A没有重写java.lang.Object的equals方法,
那么就是两个java对象的内存地址比较,比较结果和 A==B的结果相同。
如果A重写了equals方法(比如GregorianCalendar,BigDecimal类),
那么比较的结果不一定和A==B的结果相同。

转载于:https://www.cnblogs.com/hu-hugh/p/5677926.html

你可能感兴趣的文章
CentOS7.2 安装Tomcat
查看>>
二进制数组
查看>>
how tomcat works 总结
查看>>
Java+FlashWavRecorder实现网页录音并上传
查看>>
月球美容计划之最小生成树(MST)
查看>>
块状元素与内联元素的差别
查看>>
【SSH 基础】SSH框架--struts深入具体解释(一)
查看>>
Redis源代码分析(十三)--- redis-benchmark性能測试
查看>>
JVM 运行时的内存分配
查看>>
Shuttle ESB(一)——入门实例
查看>>
在SAE安装原版WORDPRESS(图文讲解)
查看>>
分布式与集群的区别是什么
查看>>
AS-->创建项目(慢)和打开项目(慢)等需要注意的问题
查看>>
2014年java软件project师面试题收集
查看>>
Java并发编程:Callable、Future和FutureTask
查看>>
这些老外的开源技术养活了很多国产软件
查看>>
svn简单介绍
查看>>
hbase region still in transition
查看>>
CSS Flex布局属性整理
查看>>
【struts2】中method={1}具体解释
查看>>