Я хочу использовать assertArrayEquals(ArrayList<Token>, ArrayList<Token>)
с этими аргументами (т. Е. ArrayList из токенов). Но Java говорит мне, что мне нужно создать такой метод. Есть ли способ проверить равенство двух списков массивов любого типа в Junit?Равновесие ArrayList Проверка JUnit
ответ
Я хочу использовать
assertArrayEquals(ArrayList<Token>, ArrayList<Token>)
с этими аргументами (то есть ArrayList лексем). Но Java говорит мне, что мне нужно создать такой метод.
Сообщаем вам, что вам нужно создать метод, потому что такого метода нет в библиотеке JUnit. Существует не такой метод в библиотеке JUnit, поскольку assertArrayEquals
для сравнения массивов, а и ArrayList
это не массив-это List
.
Есть ли способ проверить равенство двух списков массивов любого типа в Junit?
Вы можете проверить равенство двух ArrayLists
(на самом деле, любые два List
объектов) с помощью equals
, так что вы должны быть в состоянии использовать assertEquals
метод JUnit и он будет работать нормально.
Если вы используете какие-то рамки рамки юнита, такие как unitils и т. Д., У них есть методы, подобные assertReflectionEquals (аналогично другим фреймворкам), где вы можете использовать любые два объекта, используя отражение. Если вы не используете рамки стороннего JUnit, вы можете написать свой собственный аналогичный общий метод
Guys Downvote замечательный, но на самом деле его раздражает, когда кто-то сбивает с толку, не давая обратной связи, его раздражает. Это не дает шанса плакату улучшить в следующий раз –
попробовать
Assert.assertEquals(Object expected, Object actual);
он отлично работает с коллекциями
То, что вы, вероятно, хотите использовать void org.junit.Assert.assertArrayEquals(Object[] expecteds, Object[] actuals)
. Вам просто нужно, чтобы преобразовать список в массив с toArray()
способом, как и что:
ArrayList<Token> list1 = buildListOne(); // retrieve or build list
ArrayList<Token> list2 = buildListTwo(); // retrieve or build other list with same items
assertArrayEquals(list1.toArray(), list2.toArray());
Не забудьте импортировать Assert.
import static org.junit.Assert.assertArrayEquals;
Но эти методы работают только в том случае, если элементы в обоих списках имеют одинаковый порядок. Если заказ не гарантирован, вам необходимо отсортировать списки с помощью метода Collections.sort()
, но ваш объект должен реализовать интерфейс java.util.Comparable
одним способом int compareTo(T o)
.
PS: Другим возможным решением является использование assertEquals и обернуть список в набор, как и что:
assertEquals(new HashSet<Token>(list1), new HashSet<Token>(list2));
Представьте myArraylist
приведен список массив с содержанием "one", "two", "three"
Это прекрасно работает:
List<String> categories = asList("one", "two", "three");
assertTrue(myArraylist.equals(categories));
Не забывайте импортировать: import static java.util.Arrays.asList;
- 1. JUnit Test ArrayList
- 2. Испытание Junit на ArrayList
- 3. Что такое внутреннее равновесие?
- 4. Как имитировать равновесие Нэша
- 5. Равновесие/неравенство массива
- 6. Кафка восстановить равновесие минимизации
- 7. Равновесие Нэша в Python
- 8. Kafka потребительское равновесие состояние
- 9. Проверка обработки исключений JUnit
- 10. Проверка JUnit для saveCSV
- 11. Проверка Hangman JUnit
- 12. Проверка JUnit с Maven
- 13. RxJava2 Проверка JUnit
- 14. Как проверить ArrayList в jUnit?
- 15. Равновесие не работает в нокауте
- 16. Проверка Java Arraylist
- 17. Проверка наличия объекта arraylist
- 18. проверка сортировки ArrayList
- 19. Проверка SubString в ArrayList
- 20. Проверка ArrayList для дубликатов
- 21. Проверка наличия ArrayList другого ArrayList как элемента
- 22. Проверка URL-адреса в JUnit
- 23. Моделирование Проверка JUnit в Java
- 24. Проверка времени JUnit в Eclipse
- 25. Проверка ошибок JUnit и протоколирование
- 26. Проверка JUnit с использованием ContainsAll-assertation
- 27. Проверка повторяющихся значений в arrayList
- 28. проверка существования строки в Arraylist
- 29. Проверка определенного значения в ArrayList
- 30. Проверка ArrayList класса для дубликатов
Нормальный 'assertEquals' должен отлично работать для' ArrayList '. –
@Bohemian: Я не верю в это. 'Список.equals' проверяет равенство элемента за элементом, а 'assertEquals' использует метод' equals'. –
@LouisWasserman woops! вы правы :) – Bohemian