উদাহরণ সহ Assertion এর প্রয়োগ

TestNG Assertions - টেস্টএনজি (TestNG) - Java Technologies

381

Assertion টেস্টিং প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ, যা নিশ্চিত করে যে টেস্ট কেসের আউটপুট প্রত্যাশিত ফলাফলের সাথে মিলে। TestNG ফ্রেমওয়ার্কে Assertion ব্যবহার করে টেস্টের ভ্যালিডেশন করা হয়। যদি Assertion ব্যর্থ হয়, টেস্ট কেস ব্যর্থ (Failed) হিসেবে চিহ্নিত হয়।


TestNG Assertion কী?

Assertion হলো একটি স্টেটমেন্ট যা টেস্ট কেসে প্রত্যাশিত এবং প্রকৃত ফলাফলের মধ্যে তুলনা করে। TestNG ফ্রেমওয়ার্কে Assertions ক্লাস ব্যবহার করা হয়। এর প্রধান দুটি ধরণ হলো:

  • Hard Assertions: যেখানে Assertion ব্যর্থ হলে টেস্ট কেস সঙ্গে সঙ্গেই থেমে যায়।
  • Soft Assertions: যেখানে Assertion ব্যর্থ হলেও পরবর্তী লাইনগুলো চালানো যায়। এটি SoftAssert ক্লাস ব্যবহার করে করা হয়।

TestNG-তে Assertion এর উদাহরণ

Hard Assertion উদাহরণ

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

public class HardAssertionExample {

    @Test
    public void testEquality() {
        int expected = 10;
        int actual = 10;

        // Hard Assertion
        Assert.assertEquals(actual, expected, "Actual value does not match expected value!");
    }

    @Test
    public void testCondition() {
        boolean condition = true;

        // Hard Assertion
        Assert.assertTrue(condition, "Condition is not true!");
    }
}

বর্ণনা:

  • Assert.assertEquals(actual, expected) প্রকৃত এবং প্রত্যাশিত মান তুলনা করে।
  • Assert.assertTrue(condition) চেক করে শর্তটি সত্য কিনা।

Soft Assertion উদাহরণ

import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;

public class SoftAssertionExample {

    @Test
    public void testMultipleAssertions() {
        SoftAssert softAssert = new SoftAssert();

        System.out.println("Assertion 1");
        softAssert.assertEquals(5, 10, "First assertion failed!");

        System.out.println("Assertion 2");
        softAssert.assertTrue(false, "Second assertion failed!");

        System.out.println("End of test");

        // Assert all to report all failures
        softAssert.assertAll();
    }
}

বর্ণনা:

  • SoftAssert ব্যবহার করলে Assertion ব্যর্থ হলেও পরবর্তী লাইনগুলো এক্সিকিউট হয়।
  • softAssert.assertAll() সমস্ত Assertion ফলাফল রিপোর্ট করে। এটি বাধ্যতামূলক।

TestNG Assertion মেথডসমূহ

Commonly Used Assertion Methods:

মেথডবর্ণনা
Assert.assertEquals(a, b)a এবং b সমান কিনা যাচাই করে।
Assert.assertNotEquals(a, b)a এবং b সমান নয় কিনা যাচাই করে।
Assert.assertTrue(condition)condition সত্য কিনা যাচাই করে।
Assert.assertFalse(condition)condition মিথ্যা কিনা যাচাই করে।
Assert.assertNull(object)object null কিনা যাচাই করে।
Assert.assertNotNull(object)object null নয় কিনা যাচাই করে।

Hard Assertion বনাম Soft Assertion এর পার্থক্য

বৈশিষ্ট্যHard AssertionSoft Assertion
ব্যর্থতার পর টেস্টAssertion ব্যর্থ হলে টেস্ট কেস থেমে যায়।Assertion ব্যর্থ হলেও টেস্ট চালু থাকে।
প্রয়োগ পদ্ধতিAssert ক্লাস ব্যবহার করা হয়।SoftAssert ক্লাস ব্যবহার করা হয়।
ফলাফল রিপোর্টসাথে সাথেই ব্যর্থতার ফলাফল রিপোর্ট করে।সব Assertion শেষ হওয়ার পর ফলাফল রিপোর্ট করে।

উদাহরণ: Assertion সহ একটি বাস্তব টেস্ট

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

public class LoginTest {

    @Test
    public void validateLogin() {
        String expectedTitle = "Dashboard - MyApp";
        String actualTitle = "Dashboard - MyApp";

        boolean isUserLoggedIn = true;

        // Validate page title
        Assert.assertEquals(actualTitle, expectedTitle, "Page title does not match!");

        // Validate user login status
        Assert.assertTrue(isUserLoggedIn, "User is not logged in!");

        System.out.println("Login test passed!");
    }
}

বর্ণনা:

  • এখানে পেজের টাইটেল এবং ইউজারের লগইন স্ট্যাটাস যাচাই করা হয়েছে।
  • Assertion ব্যর্থ হলে টেস্ট কেস ব্যর্থ হিসেবে চিহ্নিত হবে এবং এর জন্য নির্দিষ্ট বার্তা প্রদর্শিত হবে।

সারাংশ

TestNG-তে Assertion ব্যবহার টেস্ট কেসের গুণগত মান বাড়ায় এবং ভুল চিহ্নিতকরণ সহজ করে। Hard Assertion ছোট টেস্টের জন্য উপযুক্ত, যেখানে Soft Assertion জটিল এবং মাল্টি-স্টেপ টেস্ট কেসের জন্য কার্যকর। Assertion এর সঠিক ব্যবহার টেস্টিং প্রক্রিয়াকে আরও কার্যকরী এবং নির্ভুল করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...