बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala · पाठ

Matchers

अभिव्यंजक assertions

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

Matchers, CoddyKit पर बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Matchers क्या हैं

ScalaTest के matchers, अभिकथनों के लिए अभिव्यंजक और अंग्रेज़ी-जैसा वाक्य-विन्यास देते हैं। assert(x == 3) लिखने के बजाय आप x shouldBe 3 लिखते हैं, जिससे पठनीय परीक्षण और स्पष्ट विफलता संदेश मिलते हैं।

Matchers को मिलाना

DSL को सक्रिय करने के लिए Matchers trait को अपने विनिर्देशन में मिलाएँ। यह किसी भी परीक्षण शैली के साथ काम करता है।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class DemoSpec extends AnyFlatSpec with Matchers {
  "A value" should "equal itself" in {
    val x = 3
    x shouldBe 3
  }
}

समानता वाले Matchers

shouldBe या should equal से समानता जाँचें। दोनों == से तुलना करते हैं, लेकिन स्वाभाविक रूप से पढ़े जाते हैं।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class EqSpec extends AnyFlatSpec with Matchers {
  "sum" should "be correct" in {
    (2 + 2) shouldBe 4
    (2 + 2) should equal (4)
  }
}

तुलना वाले Matchers

संख्यात्मक तुलनाएँ गद्य जैसी पढ़ी जाती हैं: should be >, should be <=, और फ़्लोटिंग-पॉइंट सहनशीलता के लिए श्रेणियाँ be within के साथ।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class CmpSpec extends AnyFlatSpec with Matchers {
  "a number" should "compare" in {
    7 should be > 3
    7 should be <= 7
    2.0 shouldBe 2.0 +- 0.01
  }
}

स्ट्रिंग Matchers

स्ट्रिंग के लिए Matchers में startWith, endWith, include और fullyMatch regex के साथ रेगेक्स शामिल हैं।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class StrSpec extends AnyFlatSpec with Matchers {
  "a string" should "match parts" in {
    "hello world" should startWith ("hello")
    "hello world" should include ("o w")
    "hello world" should endWith ("world")
  }
}

संग्रह Matchers

संग्रहों का सहज ढंग से निरीक्षण करें: have size, contain, contain allOf, और shouldBe empty से रिक्तता।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class ColSpec extends AnyFlatSpec with Matchers {
  "a list" should "have expected contents" in {
    List(1, 2, 3) should have size 3
    List(1, 2, 3) should contain (2)
    List.empty[Int] shouldBe empty
  }
}

बूलियन और Option Matchers

सत्यता और Option की सामग्री का सीधे मिलान करें: shouldBe true, shouldBe defined, और आंतरिक मान के लिए should contain।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class OptSpec extends AnyFlatSpec with Matchers {
  "an option" should "be inspected" in {
    Some(5) shouldBe defined
    Some(5) should contain (5)
    None shouldBe empty
  }
}

Matchers को संयोजित करना

संयुक्त अभिकथनों के लिए अपेक्षाओं को and / or से संयोजित करें।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class CombineSpec extends AnyFlatSpec with Matchers {
  "a number" should "satisfy both" in {
    7 should (be > 0 and be < 10)
  }
}

अपवादों की जाँच करना

यह सत्यापित करने के लिए कि कोड अपेक्षित रूप से विफल होता है, an [Exception] should be thrownBy { ... } या assertThrows का उपयोग करें।

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class ExSpec extends AnyFlatSpec with Matchers {
  "dividing by zero" should "throw" in {
    an [ArithmeticException] should be thrownBy (1 / 0)
  }
}

Matchers उपयोगी क्यों हैं

पठनीयता के अलावा, matchers वर्णनात्मक विफलता संदेश भी देते हैं। विफल List(1,2) should have size 3 अपेक्षित और वास्तविक आकार बताता है, जबकि साधारण assert केवल यह कहता है कि बूलियन false था।

shouldBe बनाम should equal

ये लगभग समान हैं; सरल समानता के लिए shouldBe अधिक संक्षिप्त और संदेशों को थोड़ा अधिक साफ़ बनाता है, जबकि उन्नत तुलनाओं के लिए should equal कस्टम Equality इंस्टेंस का समर्थन करता है।

त्वरित जाँच

Matchers के बारे में अपना ज्ञान जाँचें।

पुनरावलोकन

आपने ScalaTest के matchers सीखे:

  • DSL के लिए Matchers को मिलाएँ।
  • समानता: shouldBe, should equal; तुलना के लिए be >, +- tolerance।
  • स्ट्रिंग: startWith, include; संग्रह: have size, contain।
  • अपवाद: should be thrownBy।
  • Matchers स्पष्ट और वर्णनात्मक विफलताएँ देते हैं।
शुरुआत निःशुल्क

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

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

पाठ्यक्रम
39
पाठ
143

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

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

हाँ—“Matchers” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

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

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

क्या बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

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

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

क्या मैं इस बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. ScalaTest Styles
  2. Matchers
  3. Property-Based Testing
  4. Mocking और Fixtures
← बैकएंड इंजीनियरिंग और कार्यात्मक प्रोग्रामिंग के लिए Scala पर वापस जाएँ