PHP में परीक्षण: फ्रेमवर्क और टूल्स का अवलोकन (PHPUnit, Pest, Codeception)

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

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

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

PHP अनुप्रयोगों के परीक्षण का परिचय

परीक्षण PHP पर पेशेवर विकास का एक अनिवार्य हिस्सा है। यह प्रारंभिक चरणों में त्रुटियों का पता लगाने, रिफैक्टरिंग को सरल बनाने और कोड की स्थिरता बढ़ाने में मदद करता है। PHP पारिस्थितिकी तंत्र में टूल्स का एक शक्तिशाली सेट विकसित हुआ है: क्लासिक PHPUnit से लेकर Pest जैसे आधुनिक फ्रेमवर्क और कवरेज विश्लेषण और म्यूटेशन परीक्षण के लिए विशेष उपयोगिताओं तक।

इस लेख में, हम प्रमुख फ्रेमवर्क और टूल्स पर विचार करेंगे जो आपको PHP प्रोजेक्ट्स का गुणवत्तापूर्ण परीक्षण व्यवस्थित करने में मदद करेंगे।



PHPUnit — परीक्षण का आधार

PHPUnit PHP में यूनिट-टेस्टिंग के लिए डी-फैक्टो मानक है। यह सभी आधुनिक सुविधाओं का समर्थन करता है: एसर्ट, फिक्स्चर (setUp/tearDown), डेटा-प्रोवाइडर, अपवाद परीक्षण, स्टब्स और मॉक्स।

Composer के माध्यम से स्थापना:

composer require --dev phpunit/phpunit


कैलकुलेटर क्लास के लिए एक सरल परीक्षण का उदाहरण:

<?phpuse PHPUnit\\Framework\\TestCase;

class CalculatorTest extends TestCase{ public function testAddition() { $calculator = new Calculator(); $this->assertEquals(4, $calculator->add(2, 2)); }

/** @dataProvider additionProvider */ public function testWithDataProvider($a, $b, $expected) { $calculator = new Calculator(); $this->assertEquals($expected, $calculator->add($a, $b)); }

public function additionProvider(): array { return [ [0, 0, 0], [1, 1, 2], [-1, 1, 0], ]; }}


PHPUnit की प्रमुख क्षमताएँ:

  • एसर्ट: assertEquals, assertTrue, assertCount, assertInstanceOf और दर्जनों अन्य।
  • फिक्स्चर: वातावरण तैयार करने और साफ करने के लिए setUp() और tearDown() विधियाँ।
  • डेटा-प्रोवाइडर: डेटा के विभिन्न सेटों के साथ एक परीक्षण चलाने के लिए @dataProvider एनोटेशन।
  • अपवाद परीक्षण: expectException() और expectExceptionMessage()।
  • स्टब्स और मॉक्स: परीक्षण किए जा रहे कोड को अलग करने के लिए createMock() और getMockBuilder()।


Pest — सुरुचिपूर्ण और आधुनिक

Pest PHPUnit के ऊपर बनाया गया एक परीक्षण फ्रेमवर्क है, लेकिन अधिक संक्षिप्त और अभिव्यंजक सिंटैक्स के साथ। यह Jest (JavaScript) से प्रेरित है और उन प्रोजेक्ट्स के लिए उपयुक्त है जहाँ परीक्षणों की पठनीयता महत्वपूर्ण है।

स्थापना:

composer require --dev pestphp/pest


Pest में उसी परीक्षण का उदाहरण:

<?php

use function Pest\\Faker\\fake;

test('addition works correctly', function () { $calculator = new Calculator(); expect($calculator->add(2, 2))->toBe(4);});

dataset('numbers', [ [0, 0, 0], [1, 1, 2], [-1, 1, 0],]);

test('addition with data provider', function ($a, $b, $expected) { $calculator = new Calculator(); expect($calculator->add($a, $b))->toBe($expected);})->with('numbers');


Pest के लाभ:

  • न्यूनतम बॉयलरप्लेट कोड — परीक्षण क्लास बनाने की आवश्यकता नहीं है।
  • प्राकृतिक-भाषा विवरण के लिए अंतर्निहित फंक्शन expect(), test(), it()।
  • ग्लोबल फंक्शन से परीक्षणों का स्वचालित पंजीकरण।
  • नेस्टेड सेट (describe) और आर्किटेक्चरल परीक्षणों का समर्थन।


Codeception — इंटीग्रेशन और BDD परीक्षण के लिए

Codeception एक बहुमुखी फ्रेमवर्क है जो यूनिट, फंक्शनल, इंटीग्रेशन और स्वीकृति परीक्षणों को जोड़ता है। यह विशेष रूप से वेब अनुप्रयोगों (Laravel, Symfony, Yii) और API के परीक्षण में लोकप्रिय है।

स्थापना:

composer require --dev codeception/codeception


साइट पर लॉगिन के लिए acceptance-टेस्ट का उदाहरण:

<?php$I = new AcceptanceTester($scenario);$I->amO                    

अनुशंसाएँ