Я пытаюсь проверить класс, который я написал, и который реализует карту с Java, используя Guava-testlib MapInterfaceTest
. Когда я пытаюсь запустить свой MapTest, который реализует MapInterfaceTest
, все тесты терпят неудачу (почти, 52/56), хотя все, что я сделал, это вызвать функции от LinkedHashMap
.Как использовать Guava MapInterfaceTest для тестирования вашего класса
Почему это происходит? Как работает проверка интерфейса guava и как я могу исправить свой код? Отладчик здесь действительно не помогает.
К примеру, у меня есть:
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. –