これが私が持っているユーティリティメソッドです:
public static Class<?>[] getTypes(Object[] objects){
Class<?>[] types = new Class<?>[objects.length];
for (int i = 0; i < objects.length; i++) {
types[i] = objects[i].getClass();
}
return types;
}
そして、失敗するテストケースは次のとおりです。
@Test
public void getTypesTest() {
Object[] objects = {"String", new StringBuilder(), new Integer(5), 5};
Class<?>[] classes = ReflectionUtils.getTypes(objects);
assertTrue(classes[0].equals(String.class));
assertTrue(classes[1].equals(StringBuilder.class));
assertTrue(classes[2].equals(Integer.class));
assertTrue(classes[3].equals(int.class)); // Fails here
}
内を通過すると、これが Boxed to であることがわかり5
Object[]
new Integer(5)
ます。
どうすれば期待どおりの動作を得ることができますか?
編集
私が期待していること: テストで失敗したアサーションは合格します。それを達成するには、テスト対象のメソッドで何をすべきですか?: