如何在Unit-Test中设置固定的hashCode-Value

时间:2013-09-30 12:48:08

标签: java unit-testing junit4

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

有没有办法覆盖default-hashCode() - 值而不更改原始类?

提前致谢!

1 个答案:

答案 0 :(得分: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);
}