Có cách nào ngắn gọn, tích hợp để thực hiện bằng các xác nhận trên hai mảng được đánh máy giống như trong JUnit không? Theo mặc định (ít nhất là trong JUnit 4) nó dường như làm một thể hiện so sánh trên chính đối tượng mảng đó.So sánh các mảng trong các xác nhận JUnit, được xây dựng theo cách súc tích?
EG, không hoạt động:
int[] expectedResult = new int[] { 116800, 116800 };
int[] result = new GraphixMask().sortedAreas(rectangles);
assertEquals(expectedResult, result);
Tất nhiên, tôi có thể làm điều đó bằng tay với:
assertEquals(expectedResult.length, result.length);
for (int i = 0; i < expectedResult.length; i++)
assertEquals("mismatch at " + i, expectedResult[i], result[i]);
..nhưng là có một cách tốt hơn?
gì stinks về mặc dù đó là bạn nhận được NO dữ liệu về những gì đã xảy ra khi nó không thành công. – mBria
Tốt đẹp khi bạn đang sử dụng phiên bản junit cũ hơn (như trên Android) – Zitrax
Nếu bạn muốn xem các byte nào không phù hợp, bạn có thể chuyển đổi chúng thành chuỗi: assertEquals (Arrays.toString (expectedResult), Arrays.toString (result)) ; – Erdem