私が書いたクラスをテストしようとしていますが、Guava-testlib MapInterfaceTest
を使ってJavaからMapを実装しています。 MapInterfaceTest
を実装しているMapTestを試してみると、私がしたのはすべてLinkedHashMap
から関数を呼び出すことであっても、すべてのテストは失敗します(ほぼ52/56)。Guava MapInterfaceTestを使用してクラスをテストする方法
どうしてですか?グアバインターフェイステストは実際にどのように機能し、コードを修正することができますか?デバッガは実際にここでは役に立ちません。
例えば、私が持っている:
public void testEqualsForEmptyMap() {
final Map<K, V> map;
try {
map = makeEmptyMap();
} catch (UnsupportedOperationException e) {
return;
}
assertEquals(map, map);
assertEquals(makeEmptyMap(), map);
assertEquals(Collections.emptyMap(), map);
assertFalse(map.equals(Collections.emptySet()));
//noinspection ObjectEqualsNull
assertFalse(map.equals(null));
}
マイmakeEmptyMap方法:
@Override
protected Map<Integer, String> makeEmptyMap() throws UnsupportedOperationException {
return new MyMap<Integer, String>();
}
をマイマップ:
private final HashMap<K, V> entries;
public MyMap() {
entries = new LinkedHashMap<K, V>();
}
このテストでは、ここで失敗した:assertEquals(makeEmptyMap(), map);
コードとテストコードを表示する必要があります。そうしないと、テストが失敗している理由とその理由を確認できないからです。 – pinturic
MapInterfaceTestは、私たちが実際に使用するものではありません。 MapTestSuiteBuilderをほぼ完全に使用しています。 –