Comencé a usar la nueva función (ish) JUnit Theories para parametrizar las pruebas. Si su teoría está configurado para tener, por ejemplo, un argumento Integer
, el corredor de prueba Theories
recoge ningún Integer
s marcados con @DataPoint
:JUnit Theories: ¿Por qué no puedo usar listas (en lugar de matrices) como DataPoints?
@DataPoint
public static Integer number = 0;
así como cualquier Integer
s en matrices:
@DataPoints
public static Integer[] numbers = {1, 2, 3};
o incluso los métodos que devuelven matrices como:
@DataPoints
public static Integer[] moreNumbers() { return new Integer[] {4, 5, 6}; };
pero no en List
s. El siguiente no funciona:
@DataPoints
public static List<Integer> numberList = Arrays.asList(7, 8, 9);
Editar: Parece que otras colecciones no son compatibles tampoco, ya que esto no funciona.
@DataPoints
public static Collection<Integer> numberList = new HashSet<Integer>() {{
add(7);
add(8);
add(9);
}};
estoy haciendo algo mal, o qué List
s, s Set
, etc. realmente no funciona? ¿Fue una elección de diseño consciente no permitir el uso de Collection
s como puntos de datos, o es solo una característica que no se ha implementado todavía? ¿Hay planes para implementarlo en una versión futura de JUnit?
(actualmente estoy utilizando la versión 4.8.1 mientras que la nueva versión es 4.8.2, pero it looks like esto no es algo que se añadió en 4.8.2)
Como nota al margen, no veo una etiqueta para esta característica de "Teorías". Supongo que la etiqueta ['theory'] es para preguntas teóricas sobre cosas como la complejidad de la gran O y demás. Por favor, siéntase libre de volver a etiquetar. – MatrixFrog
+1 Parece bastante extraño. ¿Has probado otros tipos de colecciones? – ponzao
Acabo de intentar usar un 'Set' y actualicé la pregunta. Eso tampoco funciona, ya sea que lo declaras como 'Set' o' Collection'. – MatrixFrog