Codeception PHP टेस्टिंग: पूरी गाइड उदाहरण सहित

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Codeception PHP: पूरी गाइड उदाहरण सहित

1. Codeception क्या है और क्यों ज़रूरी है?

Codeception एक पूर्ण-सुविधा संपन्न PHP टेस्टिंग फ्रेमवर्क है जो यूनिट, फंक्शनल, एक्सेप्टेंस और इंटीग्रेशन टेस्टिंग की सर्वश्रेष्ठ प्रथाओं को एक साथ लाता है। सामान्य PHPUnit के विपरीत, Codeception सभी प्रकार के टेस्ट के लिए एक एकीकृत और सहज API प्रदान करता है, साथ ही ब्राउज़र (WebDriver या PhpBrowser के माध्यम से), डेटाबेस, REST API और यहां तक कि JavaScript के साथ काम करने के लिए शक्तिशाली उपकरण भी प्रदान करता है।

Codeception का मुख्य उद्देश्य टेस्ट लिखने की प्रक्रिया को यथासंभव सरल और पढ़ने योग्य बनाना है। यह फ्रेमवर्क BDD-जैसे सिंटैक्स (Behavior-Driven Development) का उपयोग करता है, जहां टेस्ट को प्राकृतिक भाषा में एक्शन-मेथड्स के साथ वर्णित किया जाता है: $I->amOnPage('/login'), $I->fillField('email', 'user@example.com'), $I->click('Login')। यह न केवल डेवलपर्स को, बल्कि टेस्टर्स, एनालिस्ट्स और मैनेजर्स को भी आसानी से समझने में मदद करता है कि वास्तव में क्या जांचा जा रहा है।

Codeception उन प्रोजेक्ट्स में अपरिहार्य है जहां व्यापक टेस्टिंग की आवश्यकता होती है: अलग-अलग क्लासेस की जांच (यूनिट-टेस्ट) से लेकर ब्राउज़र में वास्तविक उपयोगकर्ता की गतिविधियों का अनुकरण (एक्सेप्टेंस-टेस्ट) तक। यह लोकप्रिय फ्रेमवर्क (Laravel, Symfony, Yii2, Zend) को सपोर्ट करता है, डेटाबेस ट्रांजेक्शन को स्वचालित रूप से मैनेज करता है, त्रुटियों पर स्क्रीनशॉट ले सकता है और विस्तृत रिपोर्ट जनरेट कर सकता है। अगर आप कोड की गुणवत्ता बढ़ाना चाहते हैं और रिग्रेशन टेस्टिंग पर समय बचाना चाहते हैं, तो Codeception आपका विश्वसनीय साथी बनेगा।

2. इंस्टॉलेशन

Codeception Composer के माध्यम से वितरित किया जाता है, जो PHP के लिए मानक पैकेज मैनेजर है। सुनिश्चित करें कि आपके पास PHP संस्करण 7.4 या उच्चतर और Composer इंस्टॉल है।

अपने प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल में निम्न कमांड चलाएं:

composer require --dev codeception/codeception

इंस्टॉलेशन के बाद, आप प्रोजेक्ट में Codeception को इनिशियलाइज़ कर सकते हैं:

vendor/bin/codecept init

यह कमांड एक बेसिक डायरेक्टरी स्ट्रक्चर बनाएगा: tests/ फ़ोल्डर जिसमें unit, functional, acceptance सबफ़ोल्डर होंगे, साथ ही एक codeception.yml कॉन्फ़िगरेशन फ़ाइल भी बनेगी।

ब्राउज़र-आधारित टेस्ट के लिए, WebDriver मॉड्यूल अतिरिक्त रूप से इंस्टॉल करें (यदि आप Selenium या ChromeDriver का उपयोग करने की योजना बना रहे हैं):

composer require --dev codeception/module-webdriver

REST API टेस्टिंग के लिए, REST मॉड्यूल इंस्टॉल करें:

composer require --dev codeception/module-rest

3. त्वरित शुरुआत — एक न्यूनतम कार्यशील उदाहरण

आइए एक गणितीय फंक्शन की जांच के लिए एक सरल यूनिट-टेस्ट बनाते हैं। इनिशियलाइज़ेशन (codecept init) के बाद, आपके पास पहले से ही tests/unit.suite.yml फ़ाइल होगी। इसे संपादित करके Asserts मॉड्यूल को शामिल करें:

# tests/unit.suite.yml
actor: UnitTester
modules:
    enabled:
        - Asserts

अब एक टेस्ट फ़ाइल tests/unit/MathTest.php बनाएं:

<?php
use Codeception\Test\Unit;

class MathTest extends Unit
{
    protected UnitTester $tester;

    public function testAddition()
    {
        $result = 2 + 3;
        $this->tester->assertEquals(5, $result, '2 + 3 का मान 5 होना चाहिए');
    }

    public function testSubtraction()
    {
        $result = 10 - 4;
        $this->tester->assertGreaterThan(5, $result, '10 - 4 का मान 5 से अधिक होना चाहिए');
    }
}

टेस्ट चलाएं:

vendor/bin/codecept run unit

आपको हरा (सफल) परिणाम दिखना चाहिए।

अनुशंसाएँ