Pest PHP टेस्टिंग: पूरी गाइड उदाहरणों के साथ

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

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

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

Pest क्या है और इसकी ज़रूरत क्यों है?

Pest एक आधुनिक और सुंदर PHP टेस्टिंग फ्रेमवर्क है, जिसे Nuno Maduro ने 2021 में बनाया था। PHPUnit जैसे पारंपरिक टूल्स के विपरीत, Pest बहुत ही संक्षिप्त और अभिव्यंजक सिंटैक्स प्रदान करता है, जो Jest (JavaScript) और RSpec (Ruby) से प्रेरित है। अगर PHPUnit टेस्टिंग का "स्विस आर्मी नाइफ" है, तो Pest एक "स्केलपेल" है जो आपको तेज़ी से, साफ-सुथरे और कम बॉयलरप्लेट कोड के साथ टेस्ट लिखने में मदद करता है।

Pest का मुख्य उद्देश्य टेस्ट लिखने की प्रक्रिया को यथासंभव आसान और सहज बनाना है। लंबे नामों वाली क्लासेस और मेथड्स के बजाय, आप closures और fluent interface का उपयोग करते हैं। यह उन प्रोजेक्ट्स के लिए विशेष रूप से उपयोगी है जहाँ डेवलपमेंट स्पीड और कोड की पठनीयता महत्वपूर्ण है, जैसे स्टार्टअप्स, API सर्विसेज, या टीमों में जहाँ सिर्फ QA इंजीनियर ही नहीं, बल्कि डेवलपर भी टेस्ट लिखते हैं।

PHPUnit की तुलना में Pest के मुख्य फायदे:

  • संक्षिप्तता: एक ही टेस्ट के लिए कम कोड लिखना पड़ता है।
  • पठनीयता: टेस्ट प्राकृतिक भाषा की तरह दिखते हैं (जैसे, expect($result)->toBeTrue())।
  • बिल्ट-इन फंक्शन्स: beforeEach(), afterEach(), todo() और अन्य।
  • आर्किटेक्चर: TestCase से इनहेरिट करना ज़रूरी नहीं है।
  • इकोसिस्टम: Laravel, Livewire, Mockery और अन्य लोकप्रिय टूल्स के लिए प्लगइन्स उपलब्ध हैं।

Pest की स्थापना (Installation)

Pest को Composer के माध्यम से इंस्टॉल किया जाता है, जो PHP का स्टैंडर्ड पैकेज मैनेजर है। सुनिश्चित करें कि आपके पास PHP का वर्शन 8.0 या उससे ऊपर है।

एक नया प्रोजेक्ट बनाएँ या अपने मौजूदा प्रोजेक्ट की रूट डायरेक्टरी में जाएँ:

mkdir my-pest-project
cd my-pest-project
composer init --yes

Pest को डेवलपमेंट डिपेंडेंसी के रूप में इंस्टॉल करें:

composer require pestphp/pest --dev

इंस्टॉलेशन के बाद, अपने प्रोजेक्ट में Pest को इनिशियलाइज़ करें:

./vendor/bin/pest --init

यह कमांड एक बेसिक स्ट्रक्चर बनाएगी:

  • tests/ — टेस्ट के लिए डायरेक्टरी।
  • tests/Pest.php — ग्लोबल सेटिंग्स वाली फ़ाइल (जैसे, uses())।
  • phpunit.xml — कॉन्फ़िगरेशन फ़ाइल (Pest PHPUnit के ऊपर काम करता है)।

अब आप टेस्ट चला सकते हैं:

./vendor/bin/pest

अगर आप Laravel का उपयोग कर रहे हैं, तो बेहतर इंटीग्रेशन के लिए एक अतिरिक्त पैकेज इंस्टॉल करें:

composer require pestphp/pest-plugin-laravel --dev

कोड उदाहरण के साथ त्वरित शुरुआत

tests/ExampleTest.php फ़ाइल बनाएँ:

<?php

test('basic assertion', function () {
    $result = 1 + 1;
    expect($result)->toBe(2);
});

टेस्ट चलाएँ:

./vendor/bin/pest

आपको PASS Tests\ExampleTest संदेश के साथ हरा आउटपुट दिखाई देगा। ध्यान दें: हमने कोई क्लास, एनोटेशन वाले मेथड या इनहेरिटेंस का उपयोग नहीं किया। बस एक test() फंक्शन और एक closure। इसे ही "आधुनिक टेस्टिंग" कहते हैं।

it कीवर्ड के साथ वैकल्पिक सिंटैक्स (व्यवहार का वर्णन करने के लिए अधिक पठनीय):

it('performs basic addition', function () {
    $sum = 2 + 3;
    expect($sum)->toEqual(5);
});

Pest के मुख्य तरीके और फंक्शन

नीचे विस्तृत विवरण और उदाहरणों के साथ Pest के 10 प्रमुख तरीके और फंक्शन दिए गए हैं।

1. test() — टेस्ट को परिभाषित करना

यह क्या करता है: एक नया टेस्ट बनाता है। यह टेस्ट सीनारियो को परिभाषित करने का मुख्य फंक्शन है।

पैरामीटर:

  • string $description — टेस्ट का विवरण (कंसोल में दिखाया जाता है)।
  • callable $closure — एक closure जिसमें टेस्ट का लॉजिक होता है।

अनुशंसाएँ