جيه يونت
جيه يتونت JUnit (بالإنجليزية: JUnit) هو إطار اختبار الوحدة للغة جافا البرمجية. لا يزال جيه يونت جزء لا يتجزأ في مجال التطويرالبرمجي القائم على الاختبار، وهو واحد من عائلة أطر اختبار الوحدة التي تُعرف بشكل جماعي باسم أكس يونت xUnit التي نشأت مع أس يونت SUnit.
نوع |
اختبار الوحدة tool |
---|---|
نظام التشغيل | |
المنصة | |
النموذج المصدري | |
المطورون | |
موقع الويب |
ضمان الجودة | |
---|---|
لغة البرمجة | |
الإصدار الأخير |
|
المستودع | |
الرخصة |
جيه يونت مرتبط كـ جار في وقت التجميع؛ يتواجد الإطار تحت الحزمة junit.framework
لـ JUnit 3.8 والإصدارات الأقدم، وفي إطار الحزمة org.junit
لـ JUnit 4 والإصدارات الأحدث.
اخر إصدار لجيه يونت هو الأصدار الخامس الذي تميز بعدة تحديثات أهمها الترقية من JDK5 إلى JDK 8 وأيضاً أصبحت التدوينات البرمجية أفضل من حيث المقروئية.[5]
وجد مسح بحثي تم إجراؤه في عام 2013 عبر 10000 مشروع جافا مستضاف على موقع غيت هب أن جيه يونت (بالتشارك مع slf4j-api)، كانت المكتبة الخارجية الأكثر شيوعًا. تم استخدام كل مكتبة بنسبة 30.7٪ من المشاريع.[6]
مثال على تركيبات اختبار جيه يونت
عدلتركيبات اختبار جيه يونت هي كائن جافا. مع الإصدارات القديمة من جيه يونت، كان على التركيبات أن ترث من junit.framework.
TestCase
، ولكن الاختبارات باستخدام JUnit 4 لا يتوجب عليها ذلك.[7] يجب تعليم الطرق المختبرة بالتدوين البرمجي annotation، التدوين البرمجي يتم على سبيل المثال بواسطة Test@
. إذا تطلب الوضع ذلك، [8] من الممكن أيضا تحديد طريقة لتنفيذ قبل (أو بعد) كل واحدة (أو جميع) طرق الاختبار بواسطة التدوينات البرمجية Before@
(أو After@
) و BeforeClass@
(أو AfterClass@
).
مثال جيه يونت 4
عدلimport org.junit.*;
public class FoobarTest {
@BeforeClass
public static void setUpClass() throws Exception {
// يتم تشغيل الكود قبل تنفيذ طريقة الاختبار الأولى
}
@Before
public void setUp() throws Exception {
// الكود ينفذ قبل كل اختبار
}
@Test
public void testOneThing() {
// الكود الذي يختبر شيء معين
}
@Test
public void testAnotherThing() {
// كود يختبر شيء أخر
}
@Test
public void testSomethingElse() {
// كود يختبر شي مختلف عما سبق
}
@After
public void tearDown() throws Exception {
// كود ينفذ بعد كل اختبار
}
@AfterClass
public static void tearDownClass() throws Exception {
//كود يتم تنفيذه بعد أخر طريقة اختبار
}
}
مثال جيه يونت 5
عدلأحد الأمثلة البسيطة على جيه يونت 5:[9]
package com.example.project;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
;
class CalculatorTests {
@Test
@DisplayName("2 * 5 = 10")
void multiTwoNumbers() {
Calculator calculator = new Calculator();
assertEquals(2, calculator.multi(2, 5), "2 * 5 = 10");
}
void multi(int x, int y, int expectedResult) {
Calc calculator = new Calc();
assertEquals(expectedResult, calc.multi(x, y),
() -> x + " * " + y + " = " + expectedResult);
}
}
المراجع
عدل- ^ JUnit Releases نسخة محفوظة 2019-03-23 على موقع واي باك مشين.
- ^ "Relicense JUnit from CPL to EPL". Philippe Marschall. 18 مايو 2013. مؤرشف من الأصل في 2020-06-29. اطلع عليه بتاريخ 2013-09-20.
- ^ الوصول: 5 أكتوبر 2017.
- ^ ا ب "Release 5.11.3". 21 أكتوبر 2024. اطلع عليه بتاريخ 2024-10-22.
- ^ "Unit Testing in Java with JUnit 5". Stack Abuse (بالإنجليزية). Archived from the original on 2020-06-28. Retrieved 2020-06-28.
- ^ "We Analyzed 30,000 GitHub Projects – Here Are The Top 100 Libraries in Java, JS and Ruby". مؤرشف من الأصل في 2014-07-09.
- ^ كينت بيك, إريك جاما. "JUnit Cookbook". junit.sourceforge.net. مؤرشف من الأصل في 2020-06-15. اطلع عليه بتاريخ 2011-05-21.
- ^ كينت بيك. "Expensive Setup Smell". C2 Wiki. مؤرشف من الأصل في 2016-07-09. اطلع عليه بتاريخ 2011-11-28.
- ^ "junit-team/junit5-samples". GitHub (بالإنجليزية). Archived from the original on 2018-06-11. Retrieved 2020-06-28.