将基元转换为包装器的单元测试的最佳方法是什么? 我已经写了我传递一个int数组并返回一个整数数组。我知道我可以使用ClassUtils.isPrimitiveOrWrapper()来检查它是一个原语还是包装器,但是有另一种方法可以在不使用外部依赖的情况下执行此操作。
由于
答案 0 :(得分:3)
ClassUtils.isPrimitiveOrWrapper()
检查类是基元还是包装器
并且您想测试Integer
的数组是否正确映射到int
的数组
它不会真正帮助你。
您在测试中需要的是声明每个Integer
已正确映射到相应的int
值并且顺序正确。
例如:
Integer[] fixtureIntegers = new Integer[]{Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(2)};
int[] mappedInts = myClassUnderTest.map(fixtureIntegers);
// First : assert equality size
Assert.assertEquals(fixtureIntegers.length, mappedInts.length);
// Second : assert content
for (int i=0; i<fixtureIntegers.length; i++)
Assert.assertEquals(fixtureIntegers[i], mappedInts[i]);
}
当然,如果原始数组中的Integer
元素可能是null
,那么您还必须在断言中处理这种情况。
答案 1 :(得分:0)
我建议您使用guava's Ints.asList()