มีวิธีรัดกุมในตัวที่จะทำเท่ากับการยืนยันในสองอาร์เรย์เหมือนพิมพ์ใน JUnit? โดยค่าเริ่มต้น (อย่างน้อยใน JUnit 4) ดูเหมือนว่าจะทำการเปรียบเทียบกับวัตถุอาร์เรย์เอง
EG ไม่ทำงาน:
int[] expectedResult = new int[] { 116800, 116800 };
int[] result = new GraphixMask().sortedAreas(rectangles);
assertEquals(expectedResult, result);
แน่นอนฉันสามารถทำได้ด้วยตนเองด้วย:
assertEquals(expectedResult.length, result.length);
for (int i = 0; i < expectedResult.length; i++)
assertEquals("mismatch at " + i, expectedResult[i], result[i]);
.. แต่มีวิธีที่ดีกว่า
java.lang.AssertionError: array lengths differed, expected.length=6 actual.length=7
แต่ทั้งหมดที่คุณได้รับเมื่อมันล้มเหลวสำหรับความยาวแตกต่างกันคือ เนื่องจากข้อความความล้มเหลวของ JUnit ส่วนใหญ่จะไม่เป็นประโยชน์ ... ฉันแนะนำให้ใช้กรอบการยืนยันบางอย่าง