【发布时间】:2011-08-12 15:03:13
【问题描述】:
我有一堆方法返回 HashSet。我希望我的单元测试检查这些对象的状态,即确认someObject.getName() == "foobar"。
但是,哈希集迭代器顺序无法保证,因此我的单元测试有时会失败。我该如何为这样的事情编写单元测试?
例如:
@Test
public void testRowsToBeRead(){
HashSet<SomeObject> rows = new SomeObject().read();
assertEquals(19, rows.size());
for(SomeObject r:rows){
//How do I confirm contents?
}
}
我想我可能太早接受了答案。
我现在遇到的问题是我已经实现了 equals 方法,该方法在每个设计中只检查对象中的 2 个字段(它正在模仿一个 DB 表)。 但是在我的单元测试中,我想检查所有不属于我的字段,例如描述等。因此,如果交换了 2 个字段并且这些字段不在我的 equals 实现中,则单元测试会给出误报。
【问题讨论】: