উদাহরণ সহ DataProvider দিয়ে টেস্টিং

TestNG এর মধ্যে টেস্ট ডেটা প্রোভাইডার - টেস্টএনজি (TestNG) - Java Technologies

379

DataProvider কি?

TestNG-তে @DataProvider একটি অ্যানোটেশন, যা ডাটা ড্রিভেন টেস্টিং (Data-Driven Testing) করার জন্য ব্যবহৃত হয়। এটি টেস্ট মেথডে একাধিক ইনপুট ডাটা সরবরাহ করে। DataProvider ব্যবহার করে, একটি টেস্ট মেথড একাধিক ইনপুট ডাটার জন্য বারবার চালানো সম্ভব হয়।


DataProvider-এর বৈশিষ্ট্য

  • একাধিক ইনপুট ডাটা সরবরাহ করে একই টেস্ট মেথড পুনরায় চালানো যায়।
  • সহজেই ডাটা পরিচালনা এবং টেস্ট কেসের ফলাফল যাচাই করা যায়।
  • বিভিন্ন ধরণের ডাটা (Primitive এবং Object) ব্যবহার করা যায়।
  • DataProvider একক শ্রেণি বা আলাদা শ্রেণি থেকে ডাটা সরবরাহ করতে পারে।

DataProvider-এর সিনট্যাক্স

@DataProvider(name = "dataProviderName")
public Object[][] dataProviderMethod() {
    return new Object[][] {
        {data1, data2, ...},
        {data3, data4, ...},
    };
}

@Test(dataProvider = "dataProviderName")
public void testMethod(type1 param1, type2 param2, ...) {
    // টেস্ট লজিক
}

উদাহরণ: সিম্পল DataProvider

import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import org.testng.Assert;

public class DataProviderExample {

    // DataProvider ডিফাইন করা
    @DataProvider(name = "additionData")
    public Object[][] provideAdditionData() {
        return new Object[][] {
            {2, 3, 5},
            {5, 7, 12},
            {10, 20, 30}
        };
    }

    // DataProvider ব্যবহার করে টেস্ট মেথড
    @Test(dataProvider = "additionData")
    public void testAddition(int num1, int num2, int expectedSum) {
        int actualSum = num1 + num2;
        Assert.assertEquals(actualSum, expectedSum, "Addition result mismatch!");
    }
}

বর্ণনা:

  • @DataProvider এর মাধ্যমে তিনটি ডাটাসেট সরবরাহ করা হয়েছে।
  • testAddition মেথড প্রতিটি ডাটাসেটের জন্য চালানো হবে।
  • Assert.assertEquals দিয়ে প্রত্যাশিত এবং প্রকৃত ফলাফল যাচাই করা হয়েছে।

উদাহরণ: আলাদা শ্রেণি থেকে DataProvider

DataProvider শ্রেণি:

import org.testng.annotations.DataProvider;

public class TestData {

    @DataProvider(name = "loginData")
    public Object[][] provideLoginData() {
        return new Object[][] {
            {"user1", "pass1"},
            {"user2", "pass2"},
            {"user3", "pass3"}
        };
    }
}

টেস্ট শ্রেণি:

import org.testng.annotations.Test;

public class LoginTest {

    @Test(dataProvider = "loginData", dataProviderClass = TestData.class)
    public void testLogin(String username, String password) {
        System.out.println("Testing login with: " + username + " and " + password);
        // এখানে লগইন ভেরিফিকেশন লজিক যুক্ত করা যাবে।
    }
}

বর্ণনা:

  • TestData ক্লাসে DataProvider ডিফাইন করা হয়েছে।
  • LoginTest ক্লাসে DataProvider ব্যবহার করে টেস্ট মেথড চালানো হয়েছে।
  • dataProviderClass ব্যবহার করে আলাদা শ্রেণি থেকে DataProvider কল করা হয়েছে।

DataProvider-এর সুবিধা

  • একই টেস্ট মেথড বারবার লেখার প্রয়োজন হয় না।
  • ডাটা পরিবর্তনের মাধ্যমে সহজেই টেস্ট কেস স্কেল করা যায়।
  • জটিল ইনপুট ডাটার জন্য এটি একটি কার্যকরী সমাধান।

উপসংহার

TestNG-তে @DataProvider দিয়ে টেস্টিং সহজ এবং কার্যকর। এটি ডাটা ড্রিভেন টেস্টিংয়ের জন্য অত্যন্ত উপযোগী, বিশেষ করে যখন বিভিন্ন ইনপুট দিয়ে একই টেস্ট মেথড বারবার চালানো প্রয়োজন।

Content added By
Promotion

Are you sure to start over?

Loading...