Czy istnieje zwięzły, wbudowany sposób na zapewnienie asercji równych na dwóch tablicach typu "jak napisano" w JUnit? Domyślnie (przynajmniej w JUnit 4) wydaje się, że porównuje instancję samego obiektu tablicy.Porównywanie tablic w asercji JUnit, zwięzłe wbudowane?
EG, nie działa:
int[] expectedResult = new int[] { 116800, 116800 };
int[] result = new GraphixMask().sortedAreas(rectangles);
assertEquals(expectedResult, result);
Oczywiście, można to zrobić ręcznie:
assertEquals(expectedResult.length, result.length);
for (int i = 0; i < expectedResult.length; i++)
assertEquals("mismatch at " + i, expectedResult[i], result[i]);
..ale czy istnieje lepszy sposób?
Co śmierdzi o tym choć to nie dostaniesz dane o tym, co poszło nie tak, gdy nie powiedzie się. – mBria
Przyjemnie, gdy używasz starszej wersji junitowej (jak na Androidzie) – Zitrax
Jeśli chcesz zobaczyć, które bajty się nie zgadzają, możesz przekonwertować je na ciąg: assertEquals (Arrays.toString (expectedResult), Arrays.toString (result)) ; – Erdem