Я начал использовать новую функцию (ish) Theories для параметризации тестов. Если ваша Теория настроена так, чтобы принимать, например, аргумент Integer
, тестовый бегун Theories
выбирает любой Integer
, отмеченный @DataPoint
:
@DataPoint
public static Integer number = 0;
а также любые Integer
в массивах:
@DataPoints
public static Integer[] numbers = {1, 2, 3};
или даже методы, возвращающие массивы вроде:
@DataPoints
public static Integer[] moreNumbers() { return new Integer[] {4, 5, 6}; };
но не в List
s. Не работает следующее:
@DataPoints
public static List<Integer> numberList = Arrays.asList(7, 8, 9);
Изменить. Похоже, что другие коллекции также не поддерживаются, так как это не работает.
@DataPoints
public static Collection<Integer> numberList = new HashSet<Integer>() {{
add(7);
add(8);
add(9);
}};
Я делаю что-то не так, или List
s, Set
s и т.д. действительно не работает? Было ли сознательным выбором дизайна не позволять использовать Collection
в качестве точек данных, или это просто функция, которая еще не реализована? Планируете ли вы реализовать его в будущей версии JUnit?
(В настоящее время я использую версию 4.8.1, тогда как самая новая версия - 4.8.2, но она выглядит как, это не то, что было добавлено в 4.8.2)