jeudi 5 mars 2015

Has JUnit's assertArrayEquals() bug?



This is test class that uses junit4.



public class TestArrayUtilities {
static final int[] ONE_D_MATRIX = { 12, 34, 45, 6, 7, 85, 67, 43 };
static final int[] ONE_D_MATRIX_REMOVED_ONE= {12, 34, 45, 6, 85, 67, 43};


removeItemWithIndex() removes element from array with given index and return array. This test works perfectly well.



@Test
public void testRemoveItemWithIndex(){
assertArrayEquals(ArrayUtilities.removeItemWithIndex(ONE_D_MATRIX, 4),ONE_D_MATRIX_REMOVED_ONE);}


removeSpecifiedElementInArray() removes element from array with specified value and return array. This test works only if it is written expilicitly. So at this example only second one works.



assertArrayEquals(ArrayUtilities.removeSpecifiedElementInArray(ONE_D_MATRIX, 7), ONE_D_MATRIX_REMOVED_ONE);
assertArrayEquals(ArrayUtilities.removeSpecifiedElementInArray(new int[] { 12, 34, 45, 6, 7, 85, 67, 43 }, 7), new int[] {12, 34, 45, 6, 85, 67, 43});


JUnit says that :



java.lang.AssertionError: array lengths differed, expected.length=8 actual.length=7



Is this a bug? Why don't second method work while first one do?




Aucun commentaire:

Enregistrer un commentaire