Теории JUnit: Почему я не могу использовать Списки (вместо массивов) как DataPoints?

Я начал использовать новое (выход) функция JUnit Theories параметризации тестов. Если Ваша Теория настраивается для взятия, например, Integer аргумент, Theories исполнитель тестов забирает любого Integers отмеченный с @DataPoint:

@DataPoint
public static Integer number = 0;

а также любой Integers в массивах:

@DataPoints
public static Integer[] numbers = {1, 2, 3};

или даже методы, что возвращаемые массивы как:

@DataPoints 
public static Integer[] moreNumbers() { return new Integer[] {4, 5, 6}; };

но не в Lists. Следующее не работает:

@DataPoints 
public static List numberList = Arrays.asList(7, 8, 9);

Править: Похоже, что другие наборы не поддерживаются также, поскольку это не работает.

@DataPoints 
public static Collection numberList = new HashSet() {{
  add(7);
  add(8);
  add(9);
}};

Я делаю что-то не так или делаю Lists, Sets, и т.д. действительно не работают? Действительно ли это было сознательное проектное решение для не разрешения использования Collections как точки данных, или это - просто опция, которая еще не была реализована? Там планирует, должны реализовать его в будущей версии JUnit?

(Я в настоящее время использую версию 4.8.1, тогда как новейшая версия 4.8.2, но похоже, что это не что-то, что было добавлено в 4.8.2),

11
задан MatrixFrog 3 June 2010 в 20:26
поделиться

1 ответ

Я изучил проблему, и кажется, что для нее есть ожидающая фиксация. Причина, по которой его там не было, по-видимому, проста в том, что об этом никто не просил, и это довольно сложно сделать (как вы доказали в своем патче )

1
ответ дан 3 December 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: