assertarrayequals

Я тестирую два массива в Junit 4, чтобы увидеть, равны ли они, и получаю ошибку:

массивы сначала отличались в элементе [0]; ожидается: com.scheduling.Process<(Background, 1000)>, но было: com.scheduling.Process<(Background, 1000)>

Я знаю, что это очень мало информации, чтобы продолжить. Я читал в другом месте, что assertArrayEquals смотрит на ссылки в массиве.

Должно что-то вроде assertArrayEquals(new Cat(), new Cat()) вернуть равный (учитывая, что Cat класс реализует сопоставимо)? Или будет assertArrayEquals посмотрим на два Cat объекты разные, так как они не связаны ссылкой?

1 ответ

Решение

Это сравнивает использование equals, Вы можете проверить это, запустив

Assert.assertArrayEquals(new Object[]{new Integer(1)}, new Object[]{new Integer(1)});

Или создав класс, который просто реализует метод equals,

Несмотря на то, что два объекта являются разными экземплярами, массивы все равно сравниваются корректно.

Другие вопросы по тегам