चरण परिभाषाएँ लागू करना
BDD रूपरेखा का उपयोग करके चरण परिभाषाएँ लिखकर Gherkin विशेषता फ़ाइलों को निष्पादन योग्य कोड से जोड़िए।
चरण परिभाषाएँ लागू करना, CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Step Definitions: कोड का सेतु
Behavior-Driven Development (BDD) में Gherkin सुविधा फ़ाइलें सरल भाषा में व्यवहार का वर्णन करती हैं। लेकिन आपका एप्लिकेशन इन निर्देशों को समझता कैसे है?
यहीं Step Definitions काम आती हैं! ये प्रत्येक Gherkin चरण (Given, When, Then) को निष्पादन योग्य कोड में बदलने वाली महत्वपूर्ण कड़ी हैं।
- ये ऐसी विधियाँ होती हैं जो Gherkin पैटर्न से मेल खाती हैं।
- BDD फ़्रेमवर्क (जैसे Cucumber) इन विधियों को खोजकर चलाते हैं।
हमारा उदाहरण: एक सरल Calculator
आइए, Step Definitions के काम करने का तरीका दिखाने के लिए एक बुनियादी Calculator का उपयोग करें। यह क्लास वह स्थिति और तर्क रखेगी, जिनके साथ हमारे चरण अंतःक्रिया करेंगे।
इस सरल कैलकुलेटर को चलाकर देखें:
public class Calculator {
private int result;
public void add(int a, int b) {
this.result = a + b;
}
public int getResult() {
return result;
}
public void clear() {
this.result = 0;
}
public static void main(String[] args) {
Calculator calc = new Calculator();
calc.add(10, 5);
System.out.println("10 + 5 = " + calc.getResult());
}
}@Given एनोटेशन
@Given एनोटेशन का उपयोग उन विधियों के लिए किया जाता है जो किसी परिदृश्य का प्रारंभिक संदर्भ या पूर्व-शर्तें निर्धारित करती हैं। यह क्रिया होने से पहले का 'परिवेश' तैयार करता है।
हम अपने चरणों की विधियाँ रखने के लिए एक StepDefinitions क्लास बनाएँगे। ध्यान दें कि @Given में दी गई स्ट्रिंग Gherkin चरण से मेल खाती है।
import io.cucumber.java.en.Given;
public class StepDefinitions {
private Calculator calculator;
@Given("I have a calculator")
public void iHaveACalculator() {
calculator = new Calculator();
System.out.println("Given: Calculator initialized.");
}
public static void main(String[] args) {
StepDefinitions steps = new StepDefinitions();
steps.iHaveACalculator();
}
}@When एनोटेशन
@When एनोटेशन उन विधियों को चिह्नित करता है जो किसी क्रिया या घटना का वर्णन करती हैं। आमतौर पर यहीं परीक्षण किए जा रहे सिस्टम के साथ अंतःक्रिया की जाती है या उसे सक्रिय किया जाता है।
हमारा कैलकुलेटर यहाँ 'add' क्रिया करेगा।
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
public class StepDefinitions {
private Calculator calculator;
@Given("I have a calculator")
public void iHaveACalculator() {
calculator = new Calculator();
System.out.println("Given: Calculator initialized.");
}
@When("I add two numbers")
public void iAddTwoNumbers() {
// For now, let's hardcode values. We'll make it dynamic soon!
calculator.add(10, 20);
System.out.println("When: Added two numbers (10, 20).");
}
public static void main(String[] args) {
StepDefinitions steps = new StepDefinitions();
steps.iHaveACalculator();
steps.iAddTwoNumbers();
}
}@Then एनोटेशन
@Then एनोटेशन उन विधियों के लिए होता है जो क्रिया के परिणाम का निरीक्षण करती हैं। यहीं आप यह अभिकथित करते हैं कि सिस्टम ने अपेक्षा के अनुसार व्यवहार किया।
हम जाँचेंगे कि कैलकुलेटर का परिणाम सही है या नहीं।
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
public class StepDefinitions {
private Calculator calculator;
@Given("I have a calculator")
public void iHaveACalculator() {
calculator = new Calculator();
System.out.println("Given: Calculator initialized.");
}
@When("I add two numbers")
public void iAddTwoNumbers() {
calculator.add(10, 20);
System.out.println("When: Added two numbers (10, 20).");
}
@Then("the result should be 30")
public void theResultShouldBe30() {
if (calculator.getResult() == 30) {
System.out.println("Then: Result is 30. Test PASSED!");
} else {
System.out.println("Then: Expected 30, got " + calculator.getResult() + ". Test FAILED!");
}
}
public static void main(String[] args) {
StepDefinitions steps = new StepDefinitions();
steps.iHaveACalculator();
steps.iAddTwoNumbers();
steps.theResultShouldBe30();
}
}आर्ग्युमेंट के साथ डेटा भेजना
मानों को सीधे कोड में लिखना लचीला नहीं होता। BDD फ़्रेमवर्क आपको Gherkin चरण से डेटा प्राप्त करके उसे अपनी चरण-परिभाषा विधि के आर्ग्युमेंट के रूप में भेजने की सुविधा देते हैं।
स्थानधारक परिभाषित करने के लिए हम नियमित अभिव्यक्तियों या Cucumber Expressions (जैसे {int}) का उपयोग करते हैं।
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
public class StepDefinitions {
private Calculator calculator;
@Given("I have a calculator")
public void iHaveACalculator() {
calculator = new Calculator();
System.out.println("Given: Calculator initialized.");
}
@When("I add {int} and {int}")
public void iAddTwoNumbers(int num1, int num2) {
calculator.add(num1, num2);
System.out.println("When: Added " + num1 + " and " + num2 + ".");
}
@Then("the result should be {int}")
public void theResultShouldBe(int expectedResult) {
if (calculator.getResult() == expectedResult) {
System.out.println("Then: Result is " + expectedResult + ". Test PASSED!");
} else {
System.out.println("Then: Expected " + expectedResult + ", got " + calculator.getResult() + ". Test FAILED!");
}
}
public static void main(String[] args) {
StepDefinitions steps = new StepDefinitions();
steps.iHaveACalculator();
steps.iAddTwoNumbers(5, 7); // Simulating Gherkin "When I add 5 and 7"
steps.theResultShouldBe(12); // Simulating Gherkin "Then the result should be 12"
}
}Regex से लचीला चरण मिलान
यद्यपि {int} और {string} सुविधाजनक हैं, अधिक जटिल मिलान पैटर्न के लिए आप पूर्ण नियमित अभिव्यक्तियों का उपयोग कर सकते हैं।
उदाहरण के लिए, यदि आपका Gherkin चरण Given I have an (empty|full) wallet है, तो आपकी चरण-परिभाषा का पैटर्न "^I have an (empty|full) wallet$" हो सकता है, जो 'empty' या 'full' प्राप्त करेगा।
- एक या अधिक अंकों के लिए
\\d+का उपयोग करें। - किसी भी पाठ को प्राप्त करने के लिए
"(.*)"का उपयोग करें।
इससे एक ही चरण-परिभाषा Gherkin के कई थोड़े अलग वाक्यांशों से मेल खा सकती है।
BDD Hooks: सेटअप और सफ़ाई
कभी-कभी आपको प्रत्येक परिदृश्य से पहले या बाद में, या सभी सुविधाओं से पहले या बाद में क्रियाएँ करनी होती हैं। BDD फ़्रेमवर्क इसके लिए Hooks प्रदान करते हैं।
@Before: प्रत्येक परिदृश्य से पहले चलता है। स्थिति को रीसेट करने के लिए उपयोगी है।@After: प्रत्येक परिदृश्य के बाद चलता है। सफ़ाई के लिए उपयोगी है।
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
import io.cucumber.java.Before;
import io.cucumber.java.After;
public class StepDefinitions {
private Calculator calculator;
@Before
public void setupScenario() {
System.out.println("\n--- Scenario Setup (@Before) ---");
calculator = new Calculator(); // Ensure a fresh calculator for each scenario
}
@After
public void teardownScenario() {
System.out.println("--- Scenario Teardown (@After) ---");
// Optional: add cleanup if needed, e.g., closing resources
}
@Given("I have a calculator")
public void iHaveACalculator() {
System.out.println("Given: Calculator initialized.");
}
@When("I add {int} and {int}")
public void iAddTwoNumbers(int num1, int num2) {
calculator.add(num1, num2);
System.out.println("When: Added " + num1 + " and " + num2 + ".");
}
@Then("the result should be {int}")
public void theResultShouldBe(int expectedResult) {
if (calculator.getResult() == expectedResult) {
System.out.println("Then: Result is " + expectedResult + ". Test PASSED!");
} else {
System.out.println("Then: Expected " + expectedResult + ", got " + calculator.getResult() + ". Test FAILED!");
}
}
public static void main(String[] args) {
StepDefinitions steps = new StepDefinitions();
// Simulate a scenario run
steps.setupScenario();
steps.iHaveACalculator();
steps.iAddTwoNumbers(8, 4); // Simulating Gherkin "When I add 8 and 4"
steps.theResultShouldBe(12); // Simulating Gherkin "Then the result should be 12"
steps.teardownScenario();
// Simulate another scenario run
steps.setupScenario();
steps.iHaveACalculator();
steps.iAddTwoNumbers(10, 0); // Simulating Gherkin "When I add 10 and 0"
steps.theResultShouldBe(10); // Simulating Gherkin "Then the result should be 10"
steps.teardownScenario();
}
}अपनी सुविधा फ़ाइलें चलाना
वास्तविक BDD प्रोजेक्ट में आप हमारी तरह Step Definitions की विधियों को हाथ से main में नहीं बुलाएँगे।
इसके बजाय, आपके पास एक परीक्षण संचालक होगा (अक्सर एक JUnit परीक्षण क्लास), जो BDD फ़्रेमवर्क (जैसे Cucumber) को बताता है कि आपकी सुविधा फ़ाइलें और Step Definitions कहाँ मिलेंगी।
इसके बाद संचालक Gherkin को पार्स करता है, मेल खाती Step Definitions खोजता है, उन्हें क्रम से चलाता है और परिणामों की रिपोर्ट देता है।
त्वरित जाँच: Step Definition की भूमिकाएँ
BDD एनोटेशन को Step Definition में उसकी मुख्य भूमिका से मिलाएँ।
पुनरावलोकन: Step Definitions लागू करना
आपने मानव-पठनीय Gherkin चरणों को निष्पादन योग्य कोड से जोड़ना सीख लिया है!
- Step Definitions ऐसी Java विधियाँ हैं जिन पर
@Given,@Whenया@Thenएनोटेशन लगा होता है। - Gherkin पाठ से मिलान करने के लिए वे नियमित अभिव्यक्तियों या Cucumber Expressions (जैसे
{int}) का उपयोग करती हैं। - आर्ग्युमेंट Gherkin चरण से प्राप्त करके विधि को दिए जा सकते हैं।
@Beforeऔर@Afterजैसे Hooks परिदृश्य के सेटअप और सफ़ाई को प्रबंधित करने में मदद करते हैं।
भाषा और कोड के बीच यह सेतु BDD का मूल आधार है और यह सुनिश्चित करता है कि प्रोजेक्ट में शामिल सभी लोग परीक्षणों को समझ सकें!
एआई शिक्षक के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “चरण परिभाषाएँ लागू करना” पाठ निःशुल्क है?
हाँ — परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “चरण परिभाषाएँ लागू करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“चरण परिभाषाएँ लागू करना” में मैं क्या सीखूँगा?
BDD रूपरेखा का उपयोग करके चरण परिभाषाएँ लिखकर Gherkin विशेषता फ़ाइलों को निष्पादन योग्य कोड से जोड़िए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“चरण परिभाषाएँ लागू करना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- BDD का परिचय
- Gherkin सिंटैक्स और विशेषताएँ
- चरण परिभाषाएँ लागू करना
- परिदृश्य रूपरेखाएँ और डेटा सारणियाँ