PHPUnit documentation
PHPUnit ডকুমেন্টেশন
ভূমিকা
PHPUnit হল একটি জনপ্রিয় এবং বহুল ব্যবহৃত ইউনিট টেস্টিং ফ্রেমওয়ার্ক যা PHP প্রোগ্রামিং ভাষায় লেখা কোড পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি এক্সট্রিম প্রোগ্রামিং এবং টেস্ট-ড্রাইভেন ডেভেলপমেন্ট (TDD) পদ্ধতির সাথে সঙ্গতিপূর্ণ। PHPUnit ডেভেলপারদের নির্ভরযোগ্য এবং ত্রুটিমুক্ত কোড তৈরি করতে সাহায্য করে। এই নিবন্ধে, PHPUnit-এর বিভিন্ন দিক, যেমন - এর বৈশিষ্ট্য, ইনস্টলেশন, কনফিগারেশন, এবং ব্যবহারের নিয়মাবলী বিস্তারিতভাবে আলোচনা করা হবে।
PHPUnit এর বৈশিষ্ট্য
PHPUnit অসংখ্য বৈশিষ্ট্য সরবরাহ করে যা এটিকে PHP কোড পরীক্ষার জন্য একটি শক্তিশালী হাতিয়ার করে তুলেছে। এর মধ্যে কয়েকটি প্রধান বৈশিষ্ট্য নিচে উল্লেখ করা হলো:
- বিভিন্ন ধরনের অ্যাসারশন (Assertion): PHPUnit বিভিন্ন ধরনের অ্যাসারশন প্রদান করে, যা পরীক্ষার ফলাফল যাচাই করতে ব্যবহৃত হয়। যেমন: assertEquals(), assertTrue(), assertFalse(), assertNull(), assertNotNull() ইত্যাদি। অ্যাসারশনগুলি প্রত্যাশিত ফলাফল এবং প্রকৃত ফলাফলের মধ্যে তুলনা করে।
- টেস্ট স্যুট (Test Suite): PHPUnit আপনাকে একাধিক টেস্ট কেসকে একটি টেস্ট স্যুট-এ একত্রিত করার সুযোগ দেয়, যা পুরো অ্যাপ্লিকেশন বা নির্দিষ্ট অংশের জন্য পরীক্ষা চালাতে সহায়ক।
- টেস্ট রানার (Test Runner): PHPUnit-এর একটি শক্তিশালী টেস্ট রানার রয়েছে, যা টেস্ট স্যুটগুলি পরিচালনা করে এবং পরীক্ষার ফলাফল প্রদর্শন করে।
- মকিং এবং স্টাবিং (Mocking and Stubbing): জটিল নির্ভরতা (Dependencies) দূর করার জন্য PHPUnit মকিং এবং স্টাবিং সমর্থন করে। মকিং এবং স্টাবিং ব্যবহার করে, আপনি পরীক্ষার সময় অন্যান্য উপাদানগুলির আচরণ নিয়ন্ত্রণ করতে পারেন।
- ডেটা প্রোভাইডার (Data Provider): বিভিন্ন ইনপুট ডেটা ব্যবহার করে একই টেস্ট মেথড চালানোর জন্য ডেটা প্রোভাইডার ব্যবহার করা হয়।
- কভারেজ বিশ্লেষণ (Code Coverage Analysis): PHPUnit কোড কভারেজ বিশ্লেষণ করতে পারে, যা আপনার কোডের কত শতাংশ টেস্ট করা হয়েছে তা জানতে সাহায্য করে।
PHPUnit ইনস্টলেশন
PHPUnit ইনস্টল করার জন্য কয়েকটি পদ্ধতি রয়েছে। নিচে সবচেয়ে সহজ পদ্ধতিটি আলোচনা করা হলো:
১. Composer ব্যবহার করে ইনস্টলেশন: PHPUnit ইনস্টল করার সবচেয়ে সহজ উপায় হল Composer ব্যবহার করা। আপনার প্রোজেক্ট ডিরেক্টরিতে Composer ইনস্টল করা থাকলে, নিচের কমান্ডটি চালান:
```bash composer require --dev phpunit/phpunit ```
২. ম্যানুয়ালি ইনস্টলেশন: আপনি PHPUnit-এর অফিসিয়াল ওয়েবসাইট থেকে ডাউনলোড করে ম্যানুয়ালি ইনস্টল করতে পারেন। ডাউনলোড করার পর, আপনাকে আপনার সিস্টেমের PATH-এ PHPUnit-এর bin ডিরেক্টরি যোগ করতে হবে।
PHPUnit কনফিগারেশন
PHPUnit কনফিগার করার জন্য, আপনাকে একটি `phpunit.xml` ফাইল তৈরি করতে হবে। এই ফাইলে, আপনি আপনার টেস্ট স্যুট, টেস্ট রানার এবং অন্যান্য সেটিংস কনফিগার করতে পারেন। একটি সাধারণ `phpunit.xml` ফাইলের উদাহরণ নিচে দেওয়া হলো:
```xml <?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="vendor/autoload.php">
<testsuites> <testsuite name="My Project Test Suite"> <directory suffix="Test.php">tests</directory> </testsuite> </testsuites>
</phpunit> ```
এই কনফিগারেশন ফাইলে, `bootstrap` অ্যাট্রিবিউটটি আপনার প্রোজেক্টের অটোলোডার ফাইল নির্দেশ করে এবং `directory` অ্যাট্রিবিউটটি আপনার টেস্ট ফাইলগুলির অবস্থান নির্দেশ করে।
PHPUnit ব্যবহারবিধি
PHPUnit ব্যবহার করার জন্য, আপনাকে প্রথমে একটি টেস্ট কেস তৈরি করতে হবে। টেস্ট কেস হলো একটি PHP ক্লাস যা `PHPUnit\Framework\TestCase` ক্লাস থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। প্রতিটি টেস্ট কেসে, আপনি বিভিন্ন টেস্ট মেথড তৈরি করতে পারেন, যেখানে আপনি আপনার কোড পরীক্ষা করবেন।
একটি সাধারণ টেস্ট কেসের উদাহরণ নিচে দেওয়া হলো:
```php <?php
use PHPUnit\Framework\TestCase;
class MyClassTest extends TestCase {
public function testAdd() { $myClass = new MyClass(); $result = $myClass->add(2, 3); $this->assertEquals(5, $result); }
}
class MyClass {
public function add($a, $b) { return $a + $b; }
} ```
এই উদাহরণে, `MyClassTest` হলো একটি টেস্ট কেস যা `MyClass` ক্লাসের `add` মেথডটি পরীক্ষা করে। `assertEquals` অ্যাসারশন ব্যবহার করে, আমরা যাচাই করি যে `add` মেথডটি প্রত্যাশিত ফলাফল (5) প্রদান করছে কিনা।
টেস্ট রান করা
টেস্ট রান করার জন্য, আপনি কমান্ড লাইন ব্যবহার করতে পারেন। আপনার প্রোজেক্ট ডিরেক্টরিতে নেভিগেট করে নিচের কমান্ডটি চালান:
```bash ./vendor/bin/phpunit ```
এই কমান্ডটি আপনার `phpunit.xml` ফাইলে কনফিগার করা টেস্ট স্যুটগুলি চালাবে এবং পরীক্ষার ফলাফল প্রদর্শন করবে।
আরও কিছু গুরুত্বপূর্ণ বিষয়
- ফ্যাক্টরি ফাংশন (Factory Functions): জটিল অবজেক্ট তৈরি করার জন্য ফ্যাক্টরি ফাংশন ব্যবহার করা যেতে পারে, যা টেস্ট কেসকে আরও সহজ করে। ফ্যাক্টরি ফাংশন ব্যবহার করে আপনি আপনার কোডের টেস্টেবিলিটি বাড়াতে পারেন।
- টেস্ট ডাবল (Test Doubles): মকিং এবং স্টাবিংয়ের জন্য টেস্ট ডাবল ব্যবহার করা হয়। এটি নির্ভরতাগুলো নিয়ন্ত্রণ করতে সাহায্য করে।
- বিহেভিয়ার-ড্রিভেন ডেভেলপমেন্ট (BDD): PHPUnit BDD-এর সাথেও ব্যবহার করা যায়। বিহেভিয়ার-ড্রিভেন ডেভেলপমেন্ট আপনার কোডের স্পেসিফিকেশন লেখার একটি পদ্ধতি।
- কন্টিনিউয়াস ইন্টিগ্রেশন (CI): PHPUnit কন্টিনিউয়াস ইন্টিগ্রেশন সিস্টেমে ব্যবহার করা যায়, যা কোড পরিবর্তনের সাথে সাথে স্বয়ংক্রিয়ভাবে পরীক্ষা চালায়। কন্টিনিউয়াস ইন্টিগ্রেশন আপনার কোডের গুণগত মান নিশ্চিত করে।
- কোড কোয়ালিটি টুলস (Code Quality Tools): PHPUnit অন্যান্য কোড কোয়ালিটি টুলের সাথে ব্যবহার করা যায়, যেমন - PHPStan এবং Psalm।
উন্নত কনফিগারেশন
`phpunit.xml` ফাইলে আপনি আরও অনেক কনফিগারেশন অপশন ব্যবহার করতে পারেন। কিছু গুরুত্বপূর্ণ অপশন নিচে উল্লেখ করা হলো:
- backupGlobals: এই অপশনটি গ্লোবাল ভেরিয়েবলগুলির ব্যাকআপ তৈরি করে, যাতে আপনার টেস্টগুলি গ্লোবাল ভেরিয়েবলগুলিকে প্রভাবিত না করে।
- bootstrap: এই অপশনটি আপনার প্রোজেক্টের অটোলোডার ফাইল বা অন্য কোনো ইনিশিয়ালাইজেশন স্ক্রিপ্ট নির্দিষ্ট করে।
- cacheResult: এই অপশনটি টেস্টের ফলাফল ক্যাশে করে, যাতে পরবর্তী রানগুলিতে পরীক্ষা দ্রুত হয়।
- colors: এই অপশনটি টেস্ট রানারের আউটপুটে রঙ যোগ করে, যা ফলাফলগুলি সহজে বুঝতে সাহায্য করে।
- convertErrorsToExceptions: এই অপশনটি PHP-এর ত্রুটিগুলিকে ব্যতিক্রম (Exceptions)-এ রূপান্তরিত করে, যা টেস্ট কেসে ধরা যেতে পারে।
রিসোর্স এবং আরও তথ্য
- PHPUnit এর অফিসিয়াল ওয়েবসাইট
- PHPUnit এর ডকুমেন্টেশন
- Composer এর অফিসিয়াল ওয়েবসাইট
- টেস্ট-ড্রাইভেন ডেভেলপমেন্ট (TDD)
- ইউনিট টেস্টিং
- মকিং
- স্টাবিং
- অ্যাসারশন
- ফ্যাক্টরি ফাংশন
- টেস্ট ডাবল
- বিহেভিয়ার-ড্রিভেন ডেভেলপমেন্ট (BDD)
- কন্টিনিউয়াস ইন্টিগ্রেশন (CI)
- কোড কোয়ালিটি টুলস
- PHPStan
- Psalm
- এক্সট্রিম প্রোগ্রামিং
- কোড কভারেজ
- ডেটা প্রোভাইডার
- টেস্ট স্যুট
- টেস্ট রানার
উপসংহার
PHPUnit একটি শক্তিশালী এবং নমনীয় ইউনিট টেস্টিং ফ্রেমওয়ার্ক, যা PHP ডেভেলপারদের জন্য অপরিহার্য। এই নিবন্ধে, PHPUnit-এর মূল বৈশিষ্ট্য, ইনস্টলেশন, কনফিগারেশন এবং ব্যবহারের নিয়মাবলী বিস্তারিতভাবে আলোচনা করা হয়েছে। PHPUnit ব্যবহার করে, আপনি আপনার কোডের গুণগত মান উন্নত করতে এবং ত্রুটিমুক্ত অ্যাপ্লিকেশন তৈরি করতে পারবেন। নিয়মিতভাবে ইউনিট টেস্টিং করা আপনার প্রোজেক্টের দীর্ঘমেয়াদী সাফল্যের জন্য অত্যন্ত গুরুত্বপূর্ণ।
এখনই ট্রেডিং শুরু করুন
IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)
আমাদের সম্প্রদায়ে যোগ দিন
আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ