我正在使用内存 HSQLDB 运行 JUnit 测试。假设我有一个向数据库插入一些值的方法,并且我正在检查该方法是否正确插入了这些值。请注意,插入的顺序并不重要。
@Test
public void should_insert_correctly() {
MyEntity[] expectedEntities = new MyEntity[2];
// init expected entities
Inserter out = new Inserter(session); // out: object under test
out.insert();
List list = session.createCriteria(MyEntity.class).list();
assertTrue(list.contains(expectedEntities[0]));
assertTrue(list.contains(expectedEntities[1]));
}
问题是我无法将预期实体与实际实体进行比较,因为预期的 id 和实际的 id 不同。由于 MyEntity 的 setId() 是私有的(以防止显式设置 id),我不能将所有实体的 id 设置为 0 并进行比较。
如何比较两个结果集而不管它们的 id 是什么?