Avatar ·

كيف تتحقق بشكل صحيح من أن طريقة ترمي استثناءً معينًا في JUnit؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Java وأكتب اختبارات الوحدة لمشروعي. لدي طريقة يجب أن ترمي IllegalArgumentException إذا تم تمرير بيانات غير صحيحة إليها. أريد كتابة اختبار يتحقق من أن الاستثناء يُرمى بالفعل، لكنني لا أستطيع فهم كيفية القيام بذلك بشكل صحيح. إليك مثال على طريقتي: ```java public class Calculator { public int divide(int a, int b) { if (b == 0) { throw new IllegalArgumentException("المقسوم عليه لا يمكن أن يكون صفرًا"); } return a / b; } } ``` حاولت كتابة الاختبار هكذا: ```java @Test public void testDivideByZero() { Calculator calc = new Calculator(); calc.divide(10, 0); // هنا فقط ينهار مع استثناء } ``` لكن الاختبار يفشل مع خطأ، ولا يمر باللون الأخضر. قرأت أنه يمكن استخدام `@Test(expected = ...)`، لكنني لست متأكدًا من أنها أفضل طريقة. ورأيت أيضًا بعض كتل try-catch في الاختبارات، لكن هذا يبدو مرهقًا.