Assertions হলো টেস্ট স্ক্রিপ্টের একটি গুরুত্বপূর্ণ অংশ, যা পরীক্ষার সময় নির্দিষ্ট অবস্থা যাচাই করতে সাহায্য করে। TestNG Assertions ব্যবহার করে আপনি সহজেই ভেরিফাই করতে পারেন যে আপনার টেস্ট কেস প্রত্যাশিত আউটপুট দিচ্ছে কিনা। যদি Assertion ব্যর্থ হয়, তবে TestNG সেই টেস্ট কেসটিকে ব্যর্থ হিসেবে চিহ্নিত করে এবং পরবর্তী ধাপগুলো এক্সিকিউট হওয়া বন্ধ করে।
TestNG Assertions প্রধানত দুটি ভাগে বিভক্ত:
১. হার্ড অ্যাসারশন (Hard Assertion):
যদি Assertion ব্যর্থ হয়, তবে টেস্ট এক্সিকিউশন অবিলম্বে বন্ধ হয়ে যায়।
২. সফট অ্যাসারশন (Soft Assertion):
যদি Assertion ব্যর্থ হয়, টেস্ট এক্সিকিউশন বন্ধ না হয়ে পরবর্তী ধাপে চলে যায়।
Hard Assertions ব্যবহার করে টেস্ট কেসে নির্দিষ্ট অবস্থার যাচাই নিশ্চিত করা হয়। TestNG কিছু সাধারণ হার্ড Assertions প্রদান করে:
assertEquals(actual, expected)
assertNotEquals(actual, expected)
assertTrue(condition)
assertFalse(condition)
assertNull(object)
assertNotNull(object)
import org.testng.Assert;
import org.testng.annotations.Test;
public class HardAssertionsTest {
@Test
public void testEquality() {
int actual = 5;
int expected = 5;
Assert.assertEquals(actual, expected, "Actual এবং Expected সমান নয়!");
}
@Test
public void testCondition() {
boolean condition = true;
Assert.assertTrue(condition, "শর্তটি সত্য নয়!");
}
}
ব্যাখ্যা:
assertEquals
: ভ্যালু দুইটি সমান কিনা যাচাই করে।assertTrue
: শর্তটি সত্য কিনা তা যাচাই করে।যদি Assertion ব্যর্থ হয়, TestNG টেস্ট কেস বন্ধ করে দেয় এবং ব্যর্থতার কারণ দেখায়।
Soft Assertion ব্যবহার করে একাধিক Assertion ব্যর্থ হলেও টেস্ট চলতে থাকে এবং শেষে ব্যর্থতার রিপোর্ট দেয়। Soft Assertion-এর জন্য SoftAssert
ক্লাস ব্যবহার করা হয়।
import org.testng.asserts.SoftAssert;
import org.testng.annotations.Test;
public class SoftAssertionsTest {
@Test
public void testMultipleAssertions() {
SoftAssert softAssert = new SoftAssert();
softAssert.assertEquals(5, 10, "Value সমান নয়!");
softAssert.assertTrue(false, "Condition সত্য নয়!");
softAssert.assertNotNull(null, "Object Null!");
// Soft Assertion এর রিপোর্ট তৈরি করতে শেষ পর্যন্ত এটি কল করতে হয়
softAssert.assertAll();
}
}
ব্যাখ্যা:
SoftAssert.assertAll()
: এটি টেস্ট কেস শেষে সব Assertion-এর রিপোর্ট প্রদর্শন করে।বৈশিষ্ট্য | Hard Assertions | Soft Assertions |
---|---|---|
ব্যবহার | Assertion ব্যর্থ হলে টেস্ট বন্ধ হয়। | Assertion ব্যর্থ হলেও টেস্ট চালু থাকে। |
ক্লাস | Assert | SoftAssert |
পরিবেশ | Critical টেস্ট কেসের জন্য উপযুক্ত। | Non-critical টেস্ট কেসের জন্য উপযুক্ত। |
TestNG Assertions টেস্টিং প্রক্রিয়ার জন্য অত্যন্ত গুরুত্বপূর্ণ একটি ফিচার। Hard Assertions নিশ্চিত করে যে প্রত্যাশিত ফলাফল ঠিক থাকলে টেস্ট এক্সিকিউশন চলবে। অন্যদিকে, Soft Assertions ব্যর্থতা সত্ত্বেও বাকি ধাপগুলো সম্পন্ন করতে সাহায্য করে। টেস্টের ধরন এবং জটিলতা অনুযায়ী Hard অথবা Soft Assertions বেছে নেওয়া উচিত।
Assertion হলো টেস্টিং প্রক্রিয়ায় ব্যবহৃত একটি পদ্ধতি যা নিশ্চিত করে যে একটি কোডের আউটপুট প্রত্যাশিত ফলাফলের সঙ্গে মিলছে কিনা। এটি সাধারণত assert
স্টেটমেন্ট বা টেস্টএনজি-তে প্রোভাইড করা Assertion মেথডের মাধ্যমে পরিচালিত হয়।
টেস্টএনজি-তে Assertions ব্যবহার করে নিশ্চিত করা যায় যে:
Assertions পরিচালনার জন্য টেস্টএনজি org.testng.Assert
ক্লাস সরবরাহ করে, যা বিভিন্ন মেথডের মাধ্যমে টেস্টিং সহজ করে।
Assertion ব্যবহার করে চেক করা যায় টেস্ট মেথড সঠিকভাবে কাজ করছে কিনা এবং প্রত্যাশিত আউটপুট প্রদান করছে কিনা।
Assertion দিয়ে কোডের প্রতিটি স্তরে ত্রুটি শনাক্ত করা সহজ হয়। এটি ম্যানুয়াল টেস্টিংয়ের প্রয়োজনীয়তা কমিয়ে দেয়।
যদি টেস্ট কোনো শর্ত পূরণ না করে, Assertion সাথে সাথে টেস্ট ব্যর্থ হিসেবে চিহ্নিত করে, যা ত্রুটি দ্রুত শনাক্ত করতে সাহায্য করে।
এটি নিশ্চিত করে যে কোনো কোডের ভুল আউটপুট স্বাভাবিক কাজের ধারাকে বাধাগ্রস্ত করছে কিনা।
import org.testng.Assert;
import org.testng.annotations.Test;
public class AssertionExample {
@Test
public void testAssertion() {
int actual = 5 + 5;
int expected = 10;
Assert.assertEquals(actual, expected, "Actual value does not match expected value!");
}
}
এখানে Assert.assertEquals
ব্যবহার করে actual
এবং expected
মান যাচাই করা হয়েছে।
@Test
public void testCondition() {
boolean isAvailable = true;
Assert.assertTrue(isAvailable, "Condition is not true!");
}
@Test
public void testConditionFalse() {
boolean isComplete = false;
Assert.assertFalse(isComplete, "Condition is not false!");
}
@Test
public void testNullCheck() {
String value = null;
Assert.assertNull(value, "Value is not null!");
}
@Test
public void testNotNullCheck() {
String value = "TestNG";
Assert.assertNotNull(value, "Value is null!");
}
হার্ড Assertion কোনো টেস্ট ব্যর্থ হলে সাথে সাথেই টেস্ট মেথড থামিয়ে দেয়। এটি টেস্টএনজি-র ডিফল্ট Assertion।
সফট Assertion টেস্ট মেথড চালিয়ে যেতে দেয়, এমনকি একটি Assertion ব্যর্থ হলেও। এটি SoftAssert
ক্লাসের মাধ্যমে ব্যবহার করা হয়।
উদাহরণ:
import org.testng.asserts.SoftAssert;
@Test
public void testSoftAssert() {
SoftAssert softAssert = new SoftAssert();
softAssert.assertEquals(10, 5, "Values do not match!");
System.out.println("This line will execute even if assertion fails.");
softAssert.assertAll(); // Collects all failures and reports them
}
Assertion টেস্টিং প্রক্রিয়ার অপরিহার্য অংশ, যা নিশ্চিত করে যে কোড প্রত্যাশিত ফলাফল প্রদান করছে। এটি টেস্টিংয়ের কার্যকারিতা বাড়িয়ে তুলতে, ত্রুটি দ্রুত শনাক্ত করতে এবং টেস্টিং প্রক্রিয়া আরও নির্ভুল করতে সহায়তা করে। টেস্টএনজি হার্ড এবং সফট Assertions এর মাধ্যমে টেস্টিং সহজ এবং কার্যকর করে।
TestNG-এর Assert
ক্লাস বিভিন্ন assertion মেথড সরবরাহ করে, যা টেস্ট কেসের প্রত্যাশিত এবং প্রকৃত ফলাফল যাচাই করতে ব্যবহৃত হয়। Assertion ব্যর্থ হলে টেস্ট কেস ব্যর্থ হয় এবং টেস্ট রিপোর্টে এটি দেখানো হয়।
assertEquals()
ব্যবহার:
এই মেথডটি দুটি মান (অপেক্ষিত এবং প্রকৃত) সমান কিনা তা যাচাই করতে ব্যবহৃত হয়।
সিনট্যাক্স:
Assert.assertEquals(actual, expected, message);
উদাহরণ:
@Test
public void testEquals() {
int actual = 5;
int expected = 5;
Assert.assertEquals(actual, expected, "Actual value does not match expected value.");
}
assertTrue()
ব্যবহার:
এই মেথডটি যাচাই করে যে প্রদত্ত শর্তটি true
কিনা।
সিনট্যাক্স:
Assert.assertTrue(condition, message);
উদাহরণ:
@Test
public void testTrue() {
boolean condition = (10 > 5);
Assert.assertTrue(condition, "Condition is not true.");
}
assertFalse()
ব্যবহার:
এই মেথডটি যাচাই করে যে প্রদত্ত শর্তটি false
কিনা।
সিনট্যাক্স:
Assert.assertFalse(condition, message);
উদাহরণ:
@Test
public void testFalse() {
boolean condition = (5 > 10);
Assert.assertFalse(condition, "Condition is not false.");
}
assertNull()
ব্যবহার:
এই মেথডটি যাচাই করে যে একটি অবজেক্ট null
কিনা।
সিনট্যাক্স:
Assert.assertNull(object, message);
উদাহরণ:
@Test
public void testNull() {
String str = null;
Assert.assertNull(str, "Object is not null.");
}
assertNotNull()
ব্যবহার:
এই মেথডটি যাচাই করে যে একটি অবজেক্ট null
নয়।
সিনট্যাক্স:
Assert.assertNotNull(object, message);
উদাহরণ:
@Test
public void testNotNull() {
String str = "Hello, TestNG!";
Assert.assertNotNull(str, "Object is null.");
}
TestNG-এর assertion মেথডগুলো টেস্ট কেসের প্রত্যাশিত ফলাফল যাচাই করার জন্য অপরিহার্য। assertEquals()
, assertTrue()
, assertFalse()
, assertNull()
, এবং assertNotNull()
যথাযথভাবে ব্যবহার করলে টেস্ট কেস আরও নির্ভরযোগ্য এবং কার্যকর হয়।
Assertion টেস্টিং প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ, যা নিশ্চিত করে যে টেস্ট কেসের আউটপুট প্রত্যাশিত ফলাফলের সাথে মিলে। TestNG ফ্রেমওয়ার্কে Assertion ব্যবহার করে টেস্টের ভ্যালিডেশন করা হয়। যদি Assertion ব্যর্থ হয়, টেস্ট কেস ব্যর্থ (Failed) হিসেবে চিহ্নিত হয়।
Assertion হলো একটি স্টেটমেন্ট যা টেস্ট কেসে প্রত্যাশিত এবং প্রকৃত ফলাফলের মধ্যে তুলনা করে। TestNG ফ্রেমওয়ার্কে Assertions ক্লাস ব্যবহার করা হয়। এর প্রধান দুটি ধরণ হলো:
SoftAssert
ক্লাস ব্যবহার করে করা হয়।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)
চেক করে শর্তটি সত্য কিনা।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 ফলাফল রিপোর্ট করে। এটি বাধ্যতামূলক।মেথড | বর্ণনা |
---|---|
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 |
---|---|---|
ব্যর্থতার পর টেস্ট | Assertion ব্যর্থ হলে টেস্ট কেস থেমে যায়। | Assertion ব্যর্থ হলেও টেস্ট চালু থাকে। |
প্রয়োগ পদ্ধতি | Assert ক্লাস ব্যবহার করা হয়। | SoftAssert ক্লাস ব্যবহার করা হয়। |
ফলাফল রিপোর্ট | সাথে সাথেই ব্যর্থতার ফলাফল রিপোর্ট করে। | সব 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!");
}
}
বর্ণনা:
TestNG-তে Assertion ব্যবহার টেস্ট কেসের গুণগত মান বাড়ায় এবং ভুল চিহ্নিতকরণ সহজ করে। Hard Assertion ছোট টেস্টের জন্য উপযুক্ত, যেখানে Soft Assertion জটিল এবং মাল্টি-স্টেপ টেস্ট কেসের জন্য কার্যকর। Assertion এর সঠিক ব্যবহার টেস্টিং প্রক্রিয়াকে আরও কার্যকরী এবং নির্ভুল করে তোলে।
Read more