Lua Academy · पाठ

Assertions

अपेक्षित व्यवहार व्यक्त करें।

पाठ 3, कुल 4 में से13 चरण

Assertions, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

अभिकथन क्या करते हैं

अभिकथन परीक्षण का मूल है। यह ऐसे तथ्य को बताता है जो सत्य होना चाहिए। यदि वह सत्य है, तो परीक्षण जारी रहता है। यदि नहीं, तो busted सहायक संदेश के साथ विफलता दर्ज करता है।

busted luassert लाइब्रेरी का उपयोग करता है, जिसे वैश्विक assert तालिका के माध्यम से पहुँचाया जाता है।

assert.are.equal(4, 2 + 2)

are.equal

assert.are.equal == ऑपरेटर से समानता जाँचता है। पहला तर्क अपेक्षित मान और दूसरा वास्तविक मान होता है।

यह संख्याओं, स्ट्रिंग और बूलियन मानों के लिए काम करता है, लेकिन तालिकाओं के लिए सामग्री नहीं, बल्कि पहचान की तुलना करता है।

assert.are.equal("hello", greet())
assert.are.equal(10, count)

तालिकाओं के लिए are.same

तालिका की सामग्री की गहराई से तुलना करने के लिए assert.are.same का उपयोग करें। यह बार-बार जाँच करता है कि दो तालिकाओं में समान मान हैं।

डेटा संरचनाओं के लिए same और आदिम मानों या पहचान की जाँच के लिए equal का उपयोग करें।

assert.are.same({1, 2, 3}, split("1,2,3"))
assert.are.same({x = 1}, point)

सत्यता

assert.is_true और assert.is_false सटीक बूलियन मानों की जाँच करते हैं। assert.is_truthy ऐसे किसी भी मान को स्वीकार करता है जो nil या false न हो।

जब आपको विशेष रूप से बूलियन परिणाम की अपेक्षा हो, तब कड़े रूप का चयन करें।

assert.is_true(user.active)
assert.is_truthy(find("x"))
assert.is_false(list:isEmpty())

nil मानों की जाँच

assert.is_nil यह सत्यापित करता है कि कोई मान nil है, जबकि assert.is_not_nil यह सत्यापित करता है कि वह मौजूद है। खोजों की जाँच करते समय इनका अक्सर उपयोग किया जाता है।

nil की तुलना equal से करने की अपेक्षा ये आपके उद्देश्य को अधिक स्पष्ट बनाते हैं।

assert.is_nil(map["missing"])
assert.is_not_nil(map["found"])

is_not से निषेध

अधिकांश जाँचों का निषेध करने के लिए is_not जोड़ें या are_not रूप का उपयोग करें। इससे व्यक्त होता है कि कोई चीज़ अलग होनी चाहिए।

उदाहरण के लिए, assert.are_not.equal तब सफल होता है जब दोनों मान अलग हों।

assert.are_not.equal(1, 2)
assert.is_not_nil(result)

त्रुटियों का परीक्षण

यह सुनिश्चित करने के लिए कि कोई कोड त्रुटि उत्पन्न करता है, उसे एक फ़ंक्शन में लपेटकर assert.has_error को दें। busted उस फ़ंक्शन को चलाता है और पुष्टि करता है कि उसने त्रुटि उत्पन्न की।

दूसरे तर्क के रूप में अपेक्षित स्ट्रिंग देकर आप त्रुटि संदेश की भी जाँच कर सकते हैं।

assert.has_error(function()
  withdraw(-5)
end, "amount must be positive")

has_no.errors

इसके विपरीत जाँच assert.has_no.errors है। लपेटा गया फ़ंक्शन बिना त्रुटि उत्पन्न किए चलने पर यह सफल होती है।

यह पुष्टि करने के लिए उपयोगी है कि सामान्य स्थिति वाला आह्वान क्रैश नहीं होता, भले ही आप उसके लौटाए गए मान की जाँच न कर रहे हों।

assert.has_no.errors(function()
  parse("valid input")
end)

अनुकूलित विफलता संदेश

विफलताओं को स्पष्ट करने के लिए आप अधिकांश जाँचों के साथ एक संदेश जोड़ सकते हैं। उसे अतिरिक्त तर्क के रूप में दें, ताकि रिपोर्ट अपेक्षा को समझा सके।

स्पष्ट संदेश किसी रहस्यमय विफलता को ऐसा बना देते हैं जिस पर कार्रवाई की जा सके।

assert.is_true(ok, "login should succeed")

संशोधकों के साथ मिलान

luassert अधिक विस्तृत जाँचों के लिए संशोधक और मिलानकर्ता उपलब्ध कराता है। उदाहरण के लिए, assert.matches किसी स्ट्रिंग का Lua पैटर्न से मिलान करता है।

जब सटीक समानता की जाँच बहुत कड़ी हो, तब यह उपयोगी होता है, विशेषकर परिवर्तनशील आउटपुट के लिए।

assert.matches("%d%d%d%d", get_year())
assert.matches("error", log_line, 1, true)

सही जाँच चुनना

स्पष्टता के लिए सबसे विशिष्ट जाँच चुनें। तालिकाओं के लिए same, आदिम मानों के लिए equal, विफलताओं के लिए has_error, और बूलियन मानों के लिए सत्यता की जाँच का उपयोग करें।

विशिष्ट जाँचें बेहतर विफलता संदेश उत्पन्न करती हैं, जिससे समस्या-निवारण तेज़ हो जाता है।

describe("queue", function()
  it("dequeues in order", function()
    assert.are.same({"a", "b"}, q:drain())
  end)
end)

त्वरित जाँच

busted की जाँचों के बारे में अपनी समझ परखें।

पुनरावलोकन

luassert, busted की assert तालिका को शक्ति प्रदान करता है। आदिम मानों के लिए are.equal, तालिकाओं की गहराई से तुलना के लिए are.same, और जहाँ उचित हो वहाँ सत्यता या nil की जाँच का उपयोग करें।

has_error से विफलताओं और has_no.errors से सफलताओं की जाँच करें। निषेध के लिए is_not का उपयोग करें और रिपोर्ट को अधिक स्पष्ट बनाने के लिए संदेश जोड़ें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Lua सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
40
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “Assertions” पाठ निःशुल्क है?

हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Assertions” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Assertions” में मैं क्या सीखूँगा?

अपेक्षित व्यवहार व्यक्त करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“Assertions” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Test क्यों करें
  2. describe और it Blocks
  3. Assertions
  4. Mocks और Spies
← Lua Academy पर वापस जाएँ