0

你知道如何使用 JUnit 来测试两个 Hibernate 会话是否相同吗?我需要覆盖equals()吗?

4

2 回答 2

1

如果您只想查看两个引用是否指向同一个对象,那么 == 运算符就足够了。

如果您想要测试相等性,即它们具有相同的变量,那么您必须使用您的特定逻辑覆盖 equals 方法以确定相等性。但是,如果对象属于您无权访问源进行修改的类型,那么您将不得不依赖它们以满足您要求的方式实现 equals 方法。

在极少数情况下,如果它不是您想要的,那么只要该类是可扩展的,您就可以创建一个覆盖 equals 方法的匿名类。

于 2012-12-18T04:09:47.247 回答
0

看看这个问题Hibernate Object Equality Checking

从上面的参考文献中,JUnit 断言应该是这样的:

assertTrue(o1.getClass().equals(o2.getClass()) && o1.getId().equals(o2.getId()));

于 2012-12-18T04:27:01.317 回答