java - test - Usando matchers de Hamcrest con matrices de tipo primitivo
import static org hamcrest matchers equalto (2)
Hamcrest funciona bien para tipos de datos primitivos debido al boxeo automático y al unboxing, como en este caso:
assertThat(1, is(1));
Sin embargo, me gustaría usar el comparador hasItemInArray
hamcrest con una matriz de tipo primitiva como esta:
int[] values = someMethodCall();
assertThat(values, hasItemInArray(1));
Como el código anterior no compila, ya que no hay boxeo / unboxing automático para matrices de tipos de datos primitivos. ¿Hay alguna forma preferida de lograr lo anterior, aparte de la conversión manual de int[]
a Integer[]
?
AFAIK no hay una forma automática de lograr esto. Si puede hacer uso de bibliotecas de terceros, es posible que desee revisar la biblioteca Apache Commons Lang , que proporciona una clase ArrayUtils con un método de conversión:
Entero [] toObject (int [] array)
int[] values = someMethodCall();
Integer[] objValues = ArrayUtils.toObject(values);
assertThat(objValues , hasItemInArray(1));