0Pricing
Kotlin Academy · درس

التوكيدات

تحقّقوا من السلوك

التوكيدات درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ما هي عبارة التحقق؟

تتحقق عبارة التحقق من تطابق قيمة فعلية مع القيمة المتوقعة. وإذا فشلت، يفشل الاختبار مع عرض رسالة مفيدة.

يوفّر JUnit5 عبارات التحقق في org.junit.jupiter.api.Assertions.

assertEquals

عبارة التحقق الأكثر استخدامًا. انتبه إلى الترتيب: القيمة المتوقعة أولًا، والقيمة الفعلية ثانيًا.

import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val sum = 2 + 3
    assertEquals(5, sum)
    println("passed")
}

assertTrue وassertFalse

تحقق من الشروط المنطقية مباشرة.

import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Assertions.assertFalse

fun main() {
    assertTrue(10 > 5)
    assertFalse("".isNotEmpty())
    println("ok")
}

عبارات التحقق من القيم الفارغة

استخدم assertNull وassertNotNull للتحقق من قابلية القيمة لأن تكون فارغة. كما ينفّذ assertNotNull التحويل الذكي للنوع في حالات كثيرة.

import org.junit.jupiter.api.Assertions.assertNotNull
import org.junit.jupiter.api.Assertions.assertNull

fun main() {
    val name: String? = "Ada"
    assertNotNull(name)
    assertNull(null)
    println("done")
}

التحقق من الاستثناءات

يتحقق assertThrows من أن كتلةً ما ترمي استثناءً محددًا. ويعيد الاستثناء حتى تتمكن من فحص رسالته.

import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val ex = assertThrows(IllegalArgumentException::class.java) {
        require(false) { "bad input" }
    }
    assertEquals("bad input", ex.message)
    println("caught")
}

عبارات التحقق المجمّعة

ينفّذ assertAll عدة عبارات تحقق، ويعرض جميع حالات الفشل معًا بدلًا من التوقف عند أول حالة.

import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    assertAll(
        { assertEquals(2, 1 + 1) },
        { assertEquals(4, 2 + 2) }
    )
    println("all passed")
}

رسائل الفشل

مرّر رسالة (أو lambda لرسالة تُقيَّم عند الحاجة) لجعل حالات الفشل واضحة بذاتها.

import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val balance = 100
    assertEquals(100, balance, "balance should be unchanged")
    println("ok")
}

مقارنة المجموعات

يعمل assertEquals مع القوائم عندما يتطابق الترتيب والمحتوى. استخدم assertIterableEquals مع العناصر القابلة للتكرار ذات الأنواع الفعلية المختلفة.

import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val expected = listOf(1, 2, 3)
    val actual = (1..3).toList()
    assertEquals(expected, actual)
    println("lists equal")
}

عبارات التحقق السلسة باستخدام AssertK

توفّر مكتبات مثل AssertK أسلوبًا سهل القراءة مثل assertThat(x).isEqualTo(y)، وهو شائع في قواعد رموز Kotlin.

// assertThat(result).isEqualTo(5)
// assertThat(list).contains("a", "b")
// assertThat(name).isNotNull()

fail()

استدعِ fail لفرض فشل الاختبار، وهو أمر مفيد لتحديد الفروع التي يتعذر الوصول إليها أو الاختبارات غير المكتملة.

import org.junit.jupiter.api.Assertions.fail

fun process(x: Int): String = when {
    x > 0 -> "positive"
    else -> fail("unexpected value")
}

اختيار عبارة التحقق المناسبة

اختر عبارة التحقق الأكثر تحديدًا للحصول على حالات فشل واضحة:

  • المساواة ← assertEquals
  • الشروط ← assertTrue/assertFalse
  • الأخطاء ← assertThrows
  • عمليات التحقق المتعددة ← assertAll

تحقق سريع

تريد أن يعرض الاختبار كل عمليات التحقق الفاشلة دفعة واحدة بدلًا من التوقف عند أول حالة. ماذا تستخدم؟

مراجعة

أصبحت تعرف عبارات التحقق في JUnit5:

  • assertEquals (القيمة المتوقعة أولًا)، وassertTrue/assertFalse
  • assertNull/assertNotNull، وassertThrows
  • assertAll لعمليات التحقق المجمّعة
  • أضف رسائل لمزيد من الوضوح

التالي: محاكاة الاعتماديات باستخدام MockK.

الأسئلة الشائعة

هل درس «التوكيدات» مجاني؟

نعم — نص درس «التوكيدات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ماذا ستتعلم في «التوكيدات»؟

تحقّقوا من السلوك تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟

لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «التوكيدات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟

نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. كتابة الاختبارات باستخدام JUnit5
  2. التوكيدات
  3. المحاكاة باستخدام MockK
  4. اختبار Coroutines
← العودة إلى Kotlin Academy