**جيه يتونت JUnit** (بالإنجليزية: JUnit)‏ هو إطار اختبار الوحدة للغة جافا البرمجية. لا يزال جيه يونت جزء لا يتجزأ في مجال التطويرالبرمجي القائم على الاختبار، وهو واحد من عائلة أطر اختبار الوحدة التي تُعرف بشكل جماعي باسم أكس يونت xUnit التي نشأت مع أس يونت SUnit.

جيه يونت مرتبط كـ ***جار*** في وقت التجميع؛ يتواجد الإطار تحت الحزمة `junit.framework` لـ JUnit 3.8 والإصدارات الأقدم، وفي إطار الحزمة `org.junit` لـ JUnit 4 والإصدارات الأحدث.
اخر إصدار لجيه يونت هو الأصدار الخامس الذي تميز بعدة تحديثات أهمها الترقية من JDK5 إلى JDK 8 وأيضاً أصبحت التدوينات البرمجية أفضل من حيث المقروئية.
وجد مسح بحثي تم إجراؤه في عام 2013 عبر 10000 مشروع جافا مستضاف على موقع غيت هب أن جيه يونت (بالتشارك مع slf4j-api)، كانت المكتبة الخارجية الأكثر شيوعًا. تم استخدام كل مكتبة بنسبة 30.7٪ من المشاريع.

مثال على تركيبات اختبار جيه يونت
--------------------------------

تركيبات اختبار جيه يونت هي كائن جافا. مع الإصدارات القديمة من جيه يونت، كان على التركيبات أن ترث من `junit.framework.` `TestCase`، ولكن الاختبارات باستخدام JUnit 4 لا يتوجب عليها ذلك. يجب تعليم الطرق المختبرة بالتدوين البرمجي annotation، التدوين البرمجي يتم على سبيل المثال بواسطة `Test@`. إذا تطلب الوضع ذلك،  من الممكن أيضا تحديد طريقة لتنفيذ قبل (أو بعد) كل واحدة (أو جميع) طرق الاختبار بواسطة التدوينات البرمجية `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:

```
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);
 }
}

```

المراجع
-------

1. ↑  الوصول: *5 أكتوبر 2017*.
2. ↑  "Release 5.9.3". 26 أبريل 2023. اطلع عليه بتاريخ 3 مايو 2023. `{{استشهاد ويب}}`: تحقق من التاريخ في: `|access-date=` و`|date=` (مساعدة)
3. ↑  "Relicense JUnit from CPL to EPL". Philippe Marschall. 18 مايو 2013. مؤرشف من الأصل في 2020-06-29. اطلع عليه بتاريخ 2013-09-20.
4. ↑  "Unit Testing in Java with JUnit 5". *Stack Abuse* (بالإنجليزية). Archived from the original on 2020-06-28. Retrieved 2020-06-28.
5. ↑  "We Analyzed 30,000 GitHub Projects – Here Are The Top 100 Libraries in Java, JS and Ruby". مؤرشف من الأصل في 2014-07-09.
6. ↑  كينت بيك, إريك جاما. "JUnit Cookbook". junit.sourceforge.net. مؤرشف من الأصل في 2020-06-15. اطلع عليه بتاريخ 2011-05-21.
7. ↑  كينت بيك. "Expensive Setup Smell". C2 Wiki. مؤرشف من الأصل في 2016-07-09. اطلع عليه بتاريخ 2011-11-28.
8. ↑  "junit-team/junit5-samples". *GitHub* (بالإنجليزية). Archived from the original on 2018-06-11. Retrieved 2020-06-28.

روابط خارجية
------------

* الموقع الرسمي
* عرض JUnit
* دروس JUnit

* أيقونة بوابةبوابة برمجة الحاسوب
* أيقونة بوابةبوابة برمجيات
* أيقونة بوابةبوابة برمجيات حرة
* أيقونة بوابةبوابة علم الحاسوب