2

当我按照我们正在使用的某些多图的顺序为错误编写单元测试时,我正在寻找一种方法来在单元测试中“注入”hashCode 修复。

有没有办法在不更改原始类的情况下覆盖 default-hashCode()-value?

提前致谢!

4

1 回答 1

2

实现哈希码的类应实现一个接口,添加到多图的对象应属于该接口。在单元测试中,您创建一个新类,您可以在其中设置所需的哈希码返回值。然后将这些测试对象添加到多图。

MultiMap<IMyObjects> multimap;


class MyTestObjects implements IMyObjects {
private int hashCodeToUse = 42;

public int hashCode() {
  return hashCodeToUse;
}

// TODO write setter for hashCodetoUse
}

public void testHashCode() {
  // TODO init multipam
  MyTestObject obj1 = new MyTestObject();
  obj1.setHashCodeToUse(234);
  multimap.put(obj1);
}
于 2013-09-30T13:08:34.030 回答