我想要測試一個我寫過的類,它使用Guava-testlib MapInterfaceTest
實現了來自Java的Map。當我嘗試運行實現MapInterfaceTest
的MapTest時,即使我所做的只是調用LinkedHashMap
中的函數,但所有測試都失敗(幾乎爲52/56)。如何使用番石榴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。 –