كيفية اختبار الاستثناءات بشكل صحيح في Kotlin باستخدام JUnit؟
مرحبًا بالجميع! أنا مبتدئ في Kotlin وأحاول كتابة اختبارات الوحدة لمشروعي. كنت أكتب سابقًا بلغة Java، حيث كنت أستخدم `@Test(expected = ...)` أو كتل `try-catch` للتحقق من الاستثناءات. لكن في Kotlin واجهت مشكلة — أصبح الكود أقل قابلية للقراءة، ولست متأكدًا من أنني أفعل كل شيء بشكل صحيح.
لدي دالة `divide(a: Int, b: Int): Int` التي ترمي `IllegalArgumentException` إذا كان المقسوم عليه صفرًا. إليك كيف حاولت الاختبار:
```kotlin
@Test
fun testDivisionByZero() {
try {
divide(10, 0)
fail("Exception expected")
} catch (e: IllegalArgumentException) {
// success
}
}
```
هذا يعمل، لكنه يبدو ضخمًا. سمعت أن هناك طرقًا أكثر حداثة في Kotlin، مثل استخدام `assertThrows` من JUnit 5. لكنني لست متأكدًا من كيفية تطبيقها بشكل صحيح، وما هي أفضل الممارسات (best practices) الموجودة لـ Kotlin.
أرجو إرشادي:
1. ما هي الطريقة الأكثر أصالة (idiomatic) لـ Kotlin؟
2. هل هناك ك