Behat PHP: पूर्ण गाइड, उदाहरण और उपयोग
1. Behat क्या है और इसकी आवश्यकता क्यों है?
Behat एक शक्तिशाली PHP फ्रेमवर्क है जो Behaviour-Driven Development (BDD) के लिए उपयोग किया जाता है। यह आपको एप्लिकेशन के व्यवहार को सरल, लगभग प्राकृतिक भाषा (Gherkin) में वर्णित करने की अनुमति देता है, और फिर स्वचालित रूप से जांचता है कि कोड उस विवरण से मेल खाता है या नहीं। Behat टीम के गैर-तकनीकी सदस्यों (मैनेजर, एनालिस्ट, क्लाइंट) और डेवलपर्स के बीच एक पुल का काम करता है, जो एक "लाइव" दस्तावेज़ प्रदान करता है जो एक साथ स्पेसिफिकेशन और टेस्ट सेट दोनों है।
Behat की आवश्यकता क्यों है? सबसे पहले, संचार में सुधार और गलत समझे गए आवश्यकताओं के जोखिम को कम करने के लिए। तकनीकी unit-टेस्ट लिखने के बजाय जो जांचते हैं कि कोई फ़ंक्शन कैसे काम करता है, आप ऐसे सीनारियो लिखते हैं जो बताते हैं कि सिस्टम को उपयोगकर्ता के दृष्टिकोण से क्या करना चाहिए। उदाहरण के लिए, "testLogin()" लिखने के बजाय, आप लिखते हैं "उपयोगकर्ता सही डेटा दर्ज करता है और 'लॉगिन' पर क्लिक करता है"। यह टेस्ट को प्रक्रिया में सभी प्रतिभागियों के लिए पढ़ने योग्य बनाता है। इसके अलावा, Behat वेब एप्लिकेशन, API और कंसोल कमांड के इंटीग्रेशन और E2E (end-to-end) टेस्टिंग के लिए बहुत उपयुक्त है।
Behat Mink के साथ निकटता से एकीकृत होता है, जो ब्राउज़र एमुलेशन के लिए एक लाइब्रेरी है, जिससे वेब इंटरफेस का परीक्षण संभव होता है। हालांकि, इसका उपयोग वेब संदर्भ के बिना शुद्ध PHP कोड के परीक्षण के लिए भी किया जा सकता है। Behat में लागू BDD का मुख्य विचार है: "पहले सीनारियो लिखें, फिर कोड लिखें जो सीनारियो को 'ग्रीन' बनाता है।"
2. इंस्टॉलेशन (Installation)
Behat को इंस्टॉल करने के लिए Composer का उपयोग किया जाता है, जो PHP का मानक पैकेज मैनेजर है। अपने प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल में निम्नलिखित कमांड चलाएं:
composer require --dev behat/behat
यह कमांड Behat और इसकी सभी डिपेंडेंसी को vendor/ डायरेक्टरी में इंस्टॉल करेगा और composer.json फ़ाइल में एक एंट्री जोड़ेगा।
यदि आप वेब एप्लिकेशन का परीक्षण करने की योजना बना रहे हैं, तो आपको Mink और इसके ड्राइवरों में से एक की भी आवश्यकता होगी (उदाहरण के लिए, बिना JavaScript के तेज़ काम के लिए Goutte या वास्तविक ब्राउज़र के साथ काम करने के लिए Selenium2):
composer require --dev behat/mink-extension behat/mink-goutte-driver behat/mink-selenium2-driver
इंस्टॉलेशन के बाद, अपने प्रोजेक्ट में Behat को इनिशियलाइज़ करें:
vendor/bin/behat --init
यह कमांड डायरेक्टरी संरचना बनाएगा: features/ (.feature फ़ाइलों के लिए) और features/bootstrap/ (कॉन्टेक्स्ट क्लास FeatureContext.php के लिए)।
3. त्वरित शुरुआत — एक न्यूनतम कार्यशील उदाहरण
एक फ़ाइल बनाएं features/hello.feature:
Feature: Hello World
In order to see how Behat works
As a developer
I need to be able to run a simple test
Scenario: Say hello to the user
Given I have a greeting program
When I run it with name "World"
Then I should see "Hello, World!"
अब फ़ाइल features/bootstrap/FeatureContext.php को एडिट करें:
greeting = function($name) {
return "Hello, " . $name . "!";
};
}
/**
* @When I run it with name :name
*/
public function iRunItWithName($name)
{
$this->output = call_user_func($this->greeting, $name); पुस्तकालय में भी
Rust में रिएक्टिव प्रोग्रामिंग: लाइब्रेरीज़, फ्रेमवर्क और व्यावहारिक उदाहरण
PHP में GraphQL: API बनाने के लिए webonyx/graphql-php लाइब्रेरी
Kotlin में CSV के साथ कार्य: लाइब्रेरीज़, पार्सिंग और डेटा लेखन
Supertest JavaScript (Node.js): पूर्ण गाइड उदाहरणों के साथ
Node.js में QR कोड जनरेशन: qrcode लाइब्रेरी और उदाहरण