Assertions হল টেস্টিং প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ, যা নিশ্চিত করে যে একটি নির্দিষ্ট শর্ত সত্য কিনা। C++-এ GoogleTest ফ্রেমওয়ার্ক ব্যবহার করে, Assertions আপনার টেস্ট কেসগুলির মধ্যে ফলাফল যাচাই করতে সহায়ক। এখানে তিনটি সাধারণ Assertion—ASSERT_EQ, EXPECT_EQ, এবং ASSERT_TRUE—এর বিবরণ দেওয়া হলো।
১. ASSERT_EQ
ASSERT_EQ একটি Assertion যা চেক করে যে দুইটি মান সমান কিনা। যদি এই Assertion ব্যর্থ হয়, তাহলে পুরো টেস্ট কেসটি ব্যর্থ হয় এবং পরবর্তী টেস্ট কেসে চলে যায়।
ব্যবহার:
#include <gtest/gtest.h>
TEST(SampleTest, AssertEqual) {
int a = 5;
int b = 5;
ASSERT_EQ(a, b); // এটি পাস হবে
}
TEST(SampleTest, AssertNotEqual) {
int a = 5;
int b = 6;
ASSERT_EQ(a, b); // এটি ফেইল হবে
}
২. EXPECT_EQ
EXPECT_EQ একটি Assertion যা দুইটি মানের সমতা যাচাই করে, তবে এটি ব্যর্থ হলে টেস্ট কেসটি বন্ধ হয় না। এটি পরবর্তী Assertion চলতে দেয়। এই কারণে, এটি একাধিক Assertion চেক করার সময় খুব উপকারী।
ব্যবহার:
#include <gtest/gtest.h>
TEST(SampleTest, ExpectEqual) {
int a = 5;
int b = 5;
EXPECT_EQ(a, b); // এটি পাস হবে
}
TEST(SampleTest, ExpectNotEqual) {
int a = 5;
int b = 6;
EXPECT_EQ(a, b); // এটি ফেইল হবে, কিন্তু টেস্ট কেস চালিয়ে যাবে
}
৩. ASSERT_TRUE
ASSERT_TRUE একটি Assertion যা একটি শর্ত যাচাই করে। এটি নিশ্চিত করে যে একটি নির্দিষ্ট শর্ত সত্য কিনা। যদি এটি ব্যর্থ হয়, তবে পুরো টেস্ট কেসটি ব্যর্থ হবে।
ব্যবহার:
#include <gtest/gtest.h>
TEST(SampleTest, AssertTrue) {
bool condition = (5 > 2);
ASSERT_TRUE(condition); // এটি পাস হবে
}
TEST(SampleTest, AssertFalse) {
bool condition = (5 < 2);
ASSERT_TRUE(condition); // এটি ফেইল হবে
}
সারাংশ
- ASSERT_EQ: দুইটি মান সমান কিনা তা পরীক্ষা করে। যদি এটি ফেইল করে, টেস্ট কেসটি বন্ধ হয়ে যায়।
- EXPECT_EQ: দুইটি মান সমান কিনা তা পরীক্ষা করে, তবে এটি ফেইল হলে টেস্ট কেসটি বন্ধ হয় না এবং পরবর্তী Assertions চালাতে দেয়।
- ASSERT_TRUE: একটি শর্ত সত্য কিনা তা পরীক্ষা করে। ফেইল হলে টেস্ট কেসটি বন্ধ হয়ে যায়।
উপসংহার
Assertions টেস্টিং প্রক্রিয়ার মূল অংশ এবং GoogleTest-এ ব্যবহৃত বিভিন্ন Assertion টেস্ট কেসের কার্যকারিতা নিশ্চিত করতে সহায়ক। এই Assertions ব্যবহার করে আপনি আপনার কোডের সঠিকতা যাচাই করতে পারেন এবং বাগ শনাক্তকরণের জন্য একটি শক্তিশালী টেস্টিং পদ্ধতি তৈরি করতে পারেন।
Read more