0%
JUnit 5 في التطبيق العملي

أساسيات JUnit 5

دورة الحياة، والتأكيدات، والاختبارات ذات المعاملات، وأسماء تشرح سبب الفشل.

10-15 دقيقة

JUnit 5 في التطبيق العملي

اختبار يفشل برسالة expected: <true> but was: <false> داخل دالة اسمها testCalcul2 يكلفك ربع ساعة: عليك فتح الملف، وإعادة قراءة الإعداد، وإعادة بناء قصد كاتبه. أما الاختبار نفسه إذا سُمّي un_retrait_superieur_au_solde_est_refuse وانتهى بتأكيد AssertJ يعرض الكائن كاملًا، فيكلفك خمس ثوانٍ. هذا الفرق ليس شكليًا؛ فهو الذي يحدد ما إذا كانت مجموعة اختباراتك أداة تشخيص أم مجرد إنذار بلا سياق.

JUnit 5 ليس إصدارًا تدريجيًا من JUnit 4، بل إعادة كتابة كاملة، بحزمة جديدة (org.junit.jupiter) ونموذج امتداد جديد ودورة حياة صريحة. ومن هنا يأتي الالتباس الأكثر شيوعًا: كثيرًا ما يتعايش org.junit.Test وorg.junit.jupiter.api.Test في المشروع نفسه، والفئة المعلَّمة بالقديم منهما يتجاهلها المحرك الجديد ببساطة. هي لا تتعطل، بل تختفي. تحقق دائمًا من عدد الاختبارات المنفَّذة بعد أي ترحيل.

الإعداد

مع Maven تكفي تبعية واحدة؛ فإصدار surefire الحديث يكتشف JUnit 5 دون أي إعداد.

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.11.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.26.3</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.5.2</version>
        </plugin>
    </plugins>
</build>

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!