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 Assertion | Soft 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 এর সঠিক ব্যবহার টেস্টিং প্রক্রিয়াকে আরও কার্যকরী এবং নির্ভুল করে তোলে।
Read more