Dart Academy · पाठ

Mocks, Fakes और Coverage

units को अलग करके आपके test किए गए हिस्से को मापें

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

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

इकाई को अलग करें

इकाई टेस्ट को एक हिस्से की अलग से जाँच करनी चाहिए। वास्तविक डेटाबेस या नेटवर्क टेस्ट को धीमा और अस्थिर बनाते हैं, इसलिए हम उनकी जगह दूसरे साधन इस्तेमाल करते हैं। 🔌

टेस्ट डबल

टेस्ट डबल वास्तविक निर्भरता की जगह काम करता है। मॉक, फ़ेक और स्टब वे सामान्य प्रकार हैं जिनका आप उपयोग कर सकते हैं।

फ़ेक क्या होता है

फ़ेक का कार्यशील लेकिन सरल किया हुआ कार्यान्वयन होता है, जैसे वास्तविक डेटाबेस की जगह स्मृति में रखी सूची।

class FakeRepo implements Repo {
  final _items = <Item>[];
}

मॉक क्या होता है

मॉक इस बात का रिकॉर्ड रखता है कि उसे कैसे कॉल किया गया, ताकि आप केवल अंतिम मान ही नहीं बल्कि पारस्परिक क्रियाओं की भी जाँच कर सकें।

mockito पैकेज

mockito पैकेज आपके लिए मॉक तैयार करता है। इच्छित प्रकार पर एनोटेशन लगाएँ और उसे बनाने के लिए build_runner चलाएँ।

@GenerateMocks([Repo])
import 'repo_test.mocks.dart';

when से स्टब बनाना

मॉक का व्यवहार तय करने के लिए when का उपयोग करें: जब यह विधि कॉल हो, तो यह मान लौटाएँ। इससे व्यवहार पूर्वानुमेय रहता है।

when(repo.find(1))
  .thenReturn(Item('a'));

कॉल की पुष्टि करना

किसी विधि के कॉल होने और उसके कॉल किए जाने की संख्या का दावा करने के लिए verify का उपयोग करें। इससे सिद्ध होता है कि आपके कोड ने अपनी निर्भरता से सही तरीके से बात की।

verify(repo.save(any)).called(1);

एसिंक्रोनस स्टब बनाना

Future लौटाने वाली विधियों के लिए उन्हें thenAnswer से तैयार करें, ताकि मॉक एसिंक्रोनस परिणाम लौटा सके।

when(api.load())
  .thenAnswer((_) async => 'ok');

मॉक बनाम फ़ेक

जब आपको वास्तविक जैसा व्यवहार चाहिए, तब फ़ेक चुनें; और जब यह महत्वपूर्ण हो कि कौन-सी कॉल हुईं, तब मॉक चुनें।

कवरेज का अर्थ

कवरेज यह मापता है कि आपके टेस्ट वास्तव में किन पंक्तियों को चलाते हैं। अधिक कवरेज गहनता का संकेत हो सकता है, लेकिन सही होने की गारंटी कभी नहीं देता।

कवरेज तैयार करना

कवरेज संग्रह के साथ टेस्ट चलाएँ, फिर डेटा को ऐसी रिपोर्ट में बदलें जिसे आप पढ़ या किसी उपकरण पर अपलोड कर सकें।

dart test --coverage=coverage

त्वरित जाँच

कौन-सा डबल कॉल का रिकॉर्ड रखता है, ताकि आप उनकी पुष्टि कर सकें?

पुनरावलोकन

आपने फ़ेक और मॉक से इकाइयों को अलग किया, when से स्टब बनाए, कॉल की पुष्टि की और कवरेज मापा। तेज़, केंद्रित और विश्वसनीय टेस्ट। 🎯

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

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

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

पाठ्यक्रम
30
पाठ
120

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

क्या “Mocks, Fakes और Coverage” पाठ निःशुल्क है?

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

“Mocks, Fakes और Coverage” में मैं क्या सीखूँगा?

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

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

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

“Mocks, Fakes और Coverage” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. आपका पहला test और expect
  2. group, setUp और tearDown
  3. async Code और Streams का Testing
  4. Mocks, Fakes और Coverage
← Dart Academy पर वापस जाएँ