k13*_*13n 22 java testing hamcrest
Hamcrest适用于原始数据类型,因为在这种情况下自动装箱和拆箱:
assertThat(1, is(1));
Run Code Online (Sandbox Code Playgroud)
但是,我想使用hamcrest的hasItemInArraymatcher和一个原始类型数组,如下所示:
int[] values = someMethodCall();
assertThat(values, hasItemInArray(1));
Run Code Online (Sandbox Code Playgroud)
由于原始数据类型的数组没有自动装箱/拆箱,因此上述代码无法编译.有没有任何首选的方法来实现上述,除了手动转换int[]为Integer[]?
Ste*_*son 12
AFAIK没有实现这一目标的自动方式.如果您可以使用第三方库,您可能需要查看Apache Commons Lang库,它提供了一个带有转换方法的ArrayUtils类:
Integer [] toObject(int [] array)
int[] values = someMethodCall();
Integer[] objValues = ArrayUtils.toObject(values);
assertThat(objValues , hasItemInArray(1));
Run Code Online (Sandbox Code Playgroud)