خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

JUnit 5 چیست و برای چه کاری می توان از آن استفاده کرد؟

آزمایش کد خود با چارچوبی مانند JUnit باعث آرامش خاطر می شود و روند کلی توسعه نرم افزار شما را بهبود می بخشد.

در توسعه نرم‌افزار، تست واحد فرآیندی است که بخش‌های اختصاصی یک برنامه را جداسازی و آزمایش می‌کند. واحدها اصطلاح رسمی برای این بخش های اختصاصی هستند. در برنامه جاوا شما، یک واحد یک روش است.

چارچوب های تست واحد زیادی برای توسعه دهندگان جاوا وجود دارد. از جمله فریمورک های برتر JUnit 5 است.

چرا تست واحد مهم است؟

اگر تا به حال عبارات اشکال زدایی را برای چاپ و بررسی مقدار یک متغیر نوشته اید، به شما تبریک می گوییم. شما یک آزمون واحد ایجاد کرده اید. این بخش دور ریختنی کد ضروری بود زیرا شما خروجی مورد نظر را دریافت نمی کردید.

اما اگر خروجی مورد نظر را دریافت می‌کردید و کد همچنان در جایی حاوی خطا بود، چه؟ ممکن است برنامه را مستقر کنید و این اشکال بعداً منجر به نقض امنیتی شود. برای برنامه‌هایی که داده‌های کاربران را ذخیره می‌کنند، زمانی که یک نقض امنیتی وجود دارد، ریسک بالاست.

تست واحد هر بخش از برنامه شما را هدف قرار می دهد، خواه در حال حاضر خطا ایجاد کند یا خیر. بنابراین، تست واحد نقش بسزایی در امنیت خوب نرم افزار ایفا می کند.

JUnit 5 چیست؟

JUnit 5 چیزی بیش از یک چارچوب تست واحد دیگر است. چندین پروژه فرعی دارد، یعنی JUnit Platform، JUnit Jupiter و JUnit Vintage. هر یک از این سه مؤلفه دارای ماژول های منحصر به فردی است که با هم کار می کنند تا تست برنامه نویسان جاوا را بهبود بخشند.

مطلب مرتبط:   سازه های کنترل زنگ و نحوه استفاده از آنها

پلتفرم JUnit 5 در آخرین نسخه از برترین پلتفرم های توسعه یکپارچه جاوا (IDE) موجود است. IDE های جاوا که JUnit 5 را پشتیبانی می کنند عبارتند از:

  • ایده IntelliJ
  • کسوف
  • NetBeans
  • کد ویژوال استودیو

ایجاد تست واحد با JUnit 5

این برنامه نمونه از JUnit 5 برای ایجاد چندین تست واحد در یک برنامه ماشین حساب ساده استفاده می کند.

کلاس ماشین حساب

package app;
 
public class Calculator {
    public static int add(int num1, int num2) {
        return num1 + num2;
    }
      
    public static int subtract(int num1, int num2) {
        return num1 - num2;
    }
      
    public static int multiply(int num1, int num2) {
        return num1 * num2;
    }
      
    public static int divide(int num1, int num2) {
        return num1 / num2;
    }
}

کلاس جاوا در بالا چهار عمل ثابت را انجام می دهد: جمع، تفریق، ضرب و تقسیم. هر متد دو آرگومان عدد صحیح می گیرد و یک عدد صحیح را برمی گرداند.

کلاس آزمون JUnit 5

package test;
 
import static org.junit.Assert.*;
import app.Calculator;
import org.junit.Test;
 
public class CalculatorTest {
    @Test
    public void testAdd() {
        assertEquals(7, Calculator.add(3, 4));
    }
      
    @Test
    public void testSubtract() {
        assertEquals(6, Calculator.subtract(9, 3));
    }
 
    @Test
    public void testMultiply() {
        assertEquals(10, Calculator.multiply(5, 2));
    }
 
    @Test
    public void testDivide() {
        assertEquals(2, Calculator.divide(4, 2));
    }
}

CalculatorTest دو مفهوم مهم را معرفی می کند: حاشیه نویسی @Test و متد assertEquals(). حاشیه نویسی @Test نشان می دهد که روش مستقیماً زیر آن یک روش آزمایشی است. در کلاس تست بالا چهار روش تست وجود دارد، یکی برای هر یک از عملیات ماشین حساب.

مطلب مرتبط:   چگونه می توان اجرا را در برنامه Node.js متوقف کرد

تمام روش های تست از متد assertEquals() استفاده می کنند. این روش دو آرگومان اجباری و یک آرگومان سوم اختیاری می گیرد. اولین آرگومان داده شده به متد assertEquals() نتیجه مورد انتظار است و آرگومان دوم متد (یا واحدی) است که می خواهید ارزیابی کنید.

کلاس CalculatorTest متد اصلی ندارد، اما حاشیه نویسی های JUnit @Test هر یک از روش های تست را قابل اجرا می کند. اجرای کلاس CalculatorTest در eclipse اینترفیس زیر را ایجاد می کند:

خروجی تست JUnit

همانطور که می بینید، هر آزمون موفقیت آمیز است. چهار تست وجود دارد و همه آنها بدون خطا یا شکست اجرا شدند.

آزمون واحد یادگیری می تواند فرصت های شغلی شما را گسترش دهد

به عنوان یک توسعه دهنده، دانستن چگونگی تست نرم افزار یک مهارت مفید است. مطمئناً گردش کار شما را بهبود می بخشد و امیدواریم استفاده از کد شما برای دیگران آسان تر شود. با این حال، شاخه ای از توسعه نرم افزار وجود دارد که صرفاً بر روی آزمایش تمرکز دارد. این مهندسان به تستر نرم افزار معروف هستند.