Каков наилучший способ проверки значений набора в модульном тесте? - PullRequest
2 голосов
/ 19 июня 2010

Хорошо, часто у меня будет метод, который возвращает некоторый набор. Проблема с модульным тестированием такого метода состоит в том, что нет гарантии, что итерация по набору всегда будет возвращать элементы в одном и том же порядке.

Есть ли у кого-нибудь предпочтительный метод проверки набора?

Peter

Ответы [ 2 ]

2 голосов
/ 19 июня 2010

Просто поместите ваши ожидаемые значения в набор, а затем используйте assertEquals для ожидаемого и фактического набора.Это работает шарм, например,

Set<String> expected = new HashSet<String>(Arrays.asList("expected", "items"));
...
Set<String> actual = ...;
Assert.assertEquals(expected, actual);
0 голосов
/ 19 июня 2010

Два набора равны, то есть они содержат одинаковые элементы, если они оба содержат друг друга

Assert.assertTrue(s1.containsAll(s2) && s2.containsAll(s1))

Там также SetUtils.isEqualSet

...