@Test অ্যানোটেশন এর ব্যবহার

TestNG এর বেসিক অ্যানোটেশন - টেস্টএনজি (TestNG) - Java Technologies

424

@Test টেস্টএনজির অন্যতম গুরুত্বপূর্ণ অ্যানোটেশন, যা টেস্ট মেথড নির্দেশ করতে ব্যবহার করা হয়। যখন কোনো মেথডের উপর @Test অ্যানোটেশন প্রয়োগ করা হয়, তখন টেস্টএনজি সেই মেথডটিকে একটি টেস্ট কেস হিসেবে বিবেচনা করে।

@Test অ্যানোটেশনের মূল বৈশিষ্ট্য

  • একটি মেথডকে টেস্ট কেস হিসেবে চিহ্নিত করে।
  • বিভিন্ন প্যারামিটার (parameters) এবং বৈশিষ্ট্য (attributes) ব্যবহার করে টেস্টিং নিয়ন্ত্রণ করা যায়।
  • গ্রুপিং, নির্ভরশীলতা, এবং প্যারালাল টেস্টিং সাপোর্ট করে।

@Test অ্যানোটেশনের সহজ ব্যবহার

import org.testng.annotations.Test;

public class SimpleTest {

    @Test
    public void sampleTest() {
        System.out.println("This is a simple TestNG test.");
    }
}

আউটপুট:

This is a simple TestNG test.

উপরের কোডে, sampleTest() মেথডে @Test অ্যানোটেশন ব্যবহৃত হয়েছে। এটি টেস্টএনজি দ্বারা একটি টেস্ট কেস হিসেবে চালিত হবে।


@Test অ্যানোটেশনের বৈশিষ্ট্যসমূহ

Priority (অগ্রাধিকার নির্ধারণ)

একাধিক টেস্টের ক্ষেত্রে priority নির্ধারণ করে টেস্ট চালানোর ক্রম নির্ধারণ করা যায়।

import org.testng.annotations.Test;

public class PriorityTest {

    @Test(priority = 1)
    public void firstTest() {
        System.out.println("First Test");
    }

    @Test(priority = 2)
    public void secondTest() {
        System.out.println("Second Test");
    }

    @Test(priority = 0)
    public void zeroPriorityTest() {
        System.out.println("Zero Priority Test");
    }
}

আউটপুট:

Zero Priority Test  
First Test  
Second Test

Priority: ডিফল্টভাবে 0 হয়, এবং ছোট সংখ্যার টেস্ট আগে চালানো হয়।


Enabled (টেস্ট সক্রিয় বা নিষ্ক্রিয় করা)

enabled প্যারামিটার ব্যবহার করে নির্দিষ্ট কোনো টেস্ট চালানো বা এড়ানো যায়।

import org.testng.annotations.Test;

public class EnabledTest {

    @Test(enabled = true)
    public void activeTest() {
        System.out.println("This test will run.");
    }

    @Test(enabled = false)
    public void skippedTest() {
        System.out.println("This test will not run.");
    }
}

আউটপুট:

This test will run.

TimeOut (নির্দিষ্ট সময়ের মধ্যে টেস্ট চালানো)

timeOut প্যারামিটার ব্যবহার করে টেস্টের জন্য সময়সীমা নির্ধারণ করা যায়।

import org.testng.annotations.Test;

public class TimeoutTest {

    @Test(timeOut = 1000) // এক সেকেন্ড
    public void timeSensitiveTest() throws InterruptedException {
        Thread.sleep(500); // ৫০০ মিলিসেকেন্ড
        System.out.println("Test completed within time.");
    }
}

যদি মেথডটি নির্ধারিত সময়ে শেষ না হয়, তবে টেস্ট ব্যর্থ হবে।


ExpectedExceptions (নির্ধারিত এক্সসেপশন হ্যান্ডলিং)

expectedExceptions প্যারামিটার ব্যবহার করে নির্দিষ্ট কোনো এক্সসেপশন টেস্ট করা যায়।

import org.testng.annotations.Test;

public class ExceptionTest {

    @Test(expectedExceptions = ArithmeticException.class)
    public void divisionByZeroTest() {
        int result = 1 / 0;
    }
}

আউটপুট:
টেস্টটি সফল হবে কারণ এটি ArithmeticException প্রত্যাশা করেছিল।


Description (টেস্ট বর্ণনা)

description প্যারামিটার ব্যবহার করে টেস্ট সম্পর্কে বিস্তারিত বর্ণনা দেওয়া যায়।

import org.testng.annotations.Test;

public class DescriptionTest {

    @Test(description = "This test verifies a simple assertion.")
    public void simpleAssertionTest() {
        assert 1 == 1 : "Assertion failed!";
    }
}

@Test অ্যানোটেশনের ব্যবহার কেন গুরুত্বপূর্ণ?

  • জাভা প্রোগ্রামে টেস্ট কেসগুলোকে সঠিকভাবে চিহ্নিত এবং সংগঠিত করতে সাহায্য করে।
  • টেস্টের অগ্রাধিকার, সময়সীমা এবং নির্দিষ্ট শর্তাবলী অনুযায়ী টেস্ট কনফিগার করা সহজ হয়।
  • বড় প্রকল্পে টেস্ট কেস ম্যানেজমেন্ট আরও কার্যকর এবং নমনীয় হয়ে ওঠে।

@Test অ্যানোটেশন ব্যবহার করে সহজেই বিভিন্ন টেস্ট কেস তৈরি এবং পরিচালনা করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...