JUnit 5 এর জন্য প্রয়োজনীয় ডিপেনডেন্সি কনফিগারেশন

JUnit সেটআপ এবং ইন্সটলেশন - জেইউনিট (JUnit) - Java Technologies

257

JUnit 5 হল JUnit ফ্রেমওয়ার্কের নতুন সংস্করণ, যা জেইউনিট টেস্টিংয়ের আধুনিক এবং উন্নত ফিচার সরবরাহ করে। JUnit 5 মূলত তিনটি অংশে বিভক্ত:

  1. JUnit Platform: এটি টেস্ট রানার এবং টেস্টিং প্ল্যাটফর্ম।
  2. JUnit Jupiter: এটি JUnit 5 এর টেস্ট API এবং লাইফসাইকেল।
  3. JUnit Vintage: এটি JUnit 3 এবং JUnit 4 এর টেস্টগুলির সাথে সামঞ্জস্যপূর্ণ।

JUnit 5 ব্যবহার করার জন্য আপনাকে আপনার প্রোজেক্টে কিছু নির্দিষ্ট ডিপেনডেন্সি কনফিগার করতে হবে, যা JUnit 5 API এবং রানার (runner) সাপোর্ট করবে।

এই গাইডে, আমরা JUnit 5 এর জন্য প্রয়োজনীয় ডিপেনডেন্সি কনফিগারেশন দেখব, যা Maven এবং Gradle উভয় প্রোজেক্টেই কার্যকরী হবে।


১. Maven এর জন্য JUnit 5 ডিপেনডেন্সি কনফিগারেশন

আপনি যদি Maven ব্যবহার করেন, তবে pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করতে হবে।

Maven Dependency:

<dependencies>
    <!-- JUnit 5 API Dependency -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.7.2</version> <!-- Use the latest version -->
        <scope>test</scope>
    </dependency>

    <!-- JUnit 5 Engine (for running the tests) -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.7.2</version> <!-- Use the latest version -->
        <scope>test</scope>
    </dependency>

    <!-- JUnit 5 Params (if you use parameterized tests) -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>5.7.2</version> <!-- Use the latest version -->
        <scope>test</scope>
    </dependency>

    <!-- JUnit Vintage (for backward compatibility with JUnit 3 and 4) -->
    <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>5.7.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Maven Surefire Plugin Configuration:

JUnit 5 টেস্ট রান করার জন্য Maven Surefire Plugin কনফিগার করা দরকার। এটি মাভেন বিল্ডের সময় টেস্ট চালানোর জন্য ব্যবহৃত হয়। আপনার pom.xml ফাইলে নিচের কনফিগারেশনটি যোগ করুন:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <useModulePath>false</useModulePath> <!-- If using Java 9+ -->
            </configuration>
        </plugin>
    </plugins>
</build>

এটি নিশ্চিত করবে যে Maven JUnit 5 টেস্ট সঠিকভাবে রান করবে।


২. Gradle এর জন্য JUnit 5 ডিপেনডেন্সি কনফিগারেশন

আপনি যদি Gradle ব্যবহার করেন, তবে build.gradle ফাইলে নিম্নলিখিত ডিপেনডেন্সি যুক্ত করতে হবে।

Gradle Dependency:

dependencies {
    // JUnit 5 API Dependency
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2' // Latest version

    // JUnit 5 Engine (for running the tests)
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.2' // Latest version

    // JUnit 5 Params (if you use parameterized tests)
    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.2' // Latest version
}

Gradle Test Task Configuration:

Gradle ব্যবহার করে JUnit 5 টেস্ট রান করার জন্য আপনার build.gradle ফাইলে test টাস্ক কনফিগার করতে হবে:

test {
    useJUnitPlatform() // Enable JUnit 5
}

এটি JUnit Platform সক্রিয় করে, যা Gradle কে JUnit 5 টেস্ট রান করতে সক্ষম করবে।


৩. JUnit 5 এর বৈশিষ্ট্য এবং নতুন ফিচার

JUnit 5 অনেক নতুন বৈশিষ্ট্য এবং সুবিধা নিয়ে এসেছে যা আগের সংস্করণে ছিল না। এর মধ্যে কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য:

  1. Annotations: JUnit 5-এ নতুন অ্যানোটেশন রয়েছে যেমন @Test, @BeforeEach, @AfterEach, @BeforeAll, @AfterAll এবং @DisplayName। এগুলি টেস্টের লাইফসাইকেল এবং কাস্টম ডিসপ্লে নাম সেট করার জন্য ব্যবহৃত হয়।
  2. Parameterised Tests: JUnit 5-এ parameterized tests চালানোর সুবিধা রয়েছে, যার মাধ্যমে একাধিক ইনপুট দিয়ে টেস্ট চালানো যায়।
  3. Dynamic Tests: @TestFactory অ্যানোটেশন ব্যবহার করে ডায়নামিক টেস্ট তৈরি করা যায়।
  4. Test Interfaces and Inheritance: JUnit 5 এখন interfaces এবং inheritance সমর্থন করে, যা কোড রিইউজে সহায়ক।
  5. Nested Tests: @Nested অ্যানোটেশন ব্যবহার করে টেস্টের ভিতরে আরেকটি টেস্ট ক্লাস ডিফাইন করা যায়।
  6. Test Execution Order: JUnit 5-এ টেস্টের এক্সিকিউশন অর্ডার কাস্টমাইজ করা যায়।

৪. JUnit 5 টেস্ট উদাহরণ

এখানে JUnit 5 ব্যবহার করে একটি সাধারণ টেস্ট উদাহরণ দেওয়া হলো।

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {

    @Test
    void testAdd() {
        int result = 2 + 3;
        assertEquals(5, result, "The addition result should be 5");
    }
}

এখানে @Test অ্যানোটেশন দ্বারা টেস্ট মেথড চিহ্নিত করা হয়েছে এবং assertEquals ব্যবহৃত হয়েছে টেস্টের ফলাফল যাচাই করতে।


৫. JUnit 5 এ Parameterized Test উদাহরণ

JUnit 5-এ Parameterized Tests এর মাধ্যমে একাধিক ইনপুট দিয়ে একটি টেস্ট মেথড চালানো যায়।

import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class StringTest {

    @ParameterizedTest
    @ValueSource(strings = {"apple", "banana", "cherry"})
    void testStringLengthGreaterThanZero(String fruit) {
        assertTrue(fruit.length() > 0);
    }
}

এখানে @ParameterizedTest এবং @ValueSource ব্যবহার করে বিভিন্ন স্ট্রিংয়ের উপর একাধিক টেস্ট চালানো হচ্ছে।


সারাংশ

JUnit 5 হল JUnit ফ্রেমওয়ার্কের আধুনিক এবং উন্নত সংস্করণ, যা নতুন অ্যানোটেশন এবং ফিচার সরবরাহ করে। JUnit 5 ব্যবহারের জন্য Maven বা Gradle প্রোজেক্টে সঠিক ডিপেনডেন্সি এবং কনফিগারেশন যোগ করা প্রয়োজন। এই কনফিগারেশন সঠিকভাবে সেটআপ করলে আপনি JUnit 5 এর সমস্ত নতুন ফিচার এবং টেস্টিং সুবিধা উপভোগ করতে পারবেন।


Content added By
Promotion

Are you sure to start over?

Loading...