جيه يونت

مكتبة اختبار الوحدة في لغة جافا البرمجية

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

جيه يونت مرتبط كـ جار في وقت التجميع؛ يتواجد الإطار تحت الحزمة 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);
	}
}

المراجع عدل

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

روابط خارجية عدل