Dart Academy · पाठ

async Code और Streams का Testing

futures का await करें और event sequences की पुष्टि करें

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

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

एसिंक्रोनस कोड में सावधानी चाहिए

बहुत-सा वास्तविक कोड एक Future लौटाता है। यदि टेस्ट प्रतीक्षा करना भूल जाए, तो काम पूरा होने से पहले ही वह सफल हो सकता है। ⏳

वापस लौटाएँ या await करें

जब आपके टेस्ट का बॉडी भाग async हो और आप काम पर await करें, या जब आप Future को सीधे लौटाएँ, तब रनर प्रतीक्षा करता है।

test('loads user', () async {
  final u = await fetchUser();
  expect(u.name, 'Ada');
});

Future के लिए expectLater

जब जाँचा जाने वाला मान स्वयं एक Future हो, तब expectLater का उपयोग करें। उदाहरण के लिए, यह जाँचने के लिए कि Future किसी दिए गए परिणाम के साथ पूरा होता है।

await expectLater(fetchValue(), completion(42));

completion मैचर

completion मैचर तब सफल होता है जब Future सफलतापूर्वक पूरा हो जाए और उसका मान अंदर दिए गए मैचर से मेल खाए।

expectLater(load(), completion(isNotEmpty));

एसिंक्रोनस त्रुटियों की जाँच

Future की विफलता का दावा करने के लिए expectLater को throwsA के साथ जोड़ें, ताकि टेस्ट यह सत्यापित करे कि सही त्रुटि उत्पन्न हुई है।

await expectLater(
  risky(), throwsA(isA<StateError>()));

स्ट्रीम कई मान भेजती हैं

Stream समय के साथ घटनाओं का क्रम भेजती है। इसका परीक्षण करने का अर्थ है पूरे क्रम की, सही क्रम में, जाँच करना।

emits मैचर

स्ट्रीम द्वारा उत्पन्न होने वाले अगले मान का दावा करने के लिए emits का उपयोग करें और अपेक्षित क्रम के लिए emitsInOrder का उपयोग करें।

await expectLater(
  counter, emitsInOrder([1, 2, 3]));

अंत का संकेत दें

emitsDone मैचर जाँचता है कि स्ट्रीम अपेक्षित समय पर बंद होती है या नहीं। इससे कभी समाप्त न होने वाली स्ट्रीम पकड़ी जाती हैं।

expectLater(ticks, emitsThrough(emitsDone));

स्ट्रीम की त्रुटियाँ भी

emitsError के साथ मैचर जोड़कर स्ट्रीम में त्रुटि की अपेक्षा करें और सत्यापित करें कि विफलताएँ घटनाओं के रूप में आती हैं।

emitsInOrder([1, emitsError(isException)]);

नकली सफलताओं से सावधान रहें

एक सामान्य बग: await भूल जाने पर टेस्ट जल्दी समाप्त हो जाता है और चुपचाप सफल हो जाता है। एसिंक्रोनस काम को हमेशा await करें या लौटाएँ।

टाइमआउट आपकी मदद करते हैं

यदि एसिंक्रोनस कोड अटक जाता है, तो रनर उसे रोक देता है। धीमे टेस्ट के लिए timeout से प्रतीक्षा-अवधि बदली जा सकती है।

test('slow', () async { /* ... */ },
  timeout: Timeout(Duration(seconds: 5)));

त्वरित जाँच

स्ट्रीम द्वारा 1, 2, 3 को क्रम से भेजे जाने का दावा कैसे करेंगे?

पुनरावलोकन

आपने Futures पर await किया, completion और throwsA के साथ expectLater का उपयोग किया और emits मैचर से स्ट्रीम की जाँच की। आत्मविश्वास के साथ किया गया एसिंक्रोनस परीक्षण। 🌊

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

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

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

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

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

क्या “async Code और Streams का Testing” पाठ निःशुल्क है?

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

“async Code और Streams का Testing” में मैं क्या सीखूँगा?

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

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

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

“async Code और Streams का Testing” पाठ पूरा करने में कितना समय लगता है?

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 पर वापस जाएँ