0Pricing
Dart Academy · Pelajaran

Menguji Kode async dan Stream

Menunggu future dan memverifikasi urutan peristiwa

Menguji Kode async dan Stream adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Dart Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Dart Academy mencakup 4 pelajaran total.

Asinkron Memerlukan Perhatian

Banyak kode nyata mengembalikan Future. Jika pengujian lupa menunggu, pengujian mungkin berhasil sebelum pekerjaan selesai. ⏳

Kembalikan atau tunggu

Pelaksana menunggu ketika isi pengujian Anda bersifat async dan Anda menunggu pekerjaannya, atau ketika Anda langsung mengembalikan Future.

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

expectLater untuk Future

Gunakan expectLater ketika nilai yang dicocokkan sendiri merupakan Future, misalnya saat memeriksa bahwa Future selesai dengan hasil tertentu.

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

Pencocok completion

Pencocok completion berhasil ketika Future selesai tanpa masalah dan nilainya cocok dengan pencocok di dalamnya.

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

Mengharapkan Kesalahan Asinkron

Untuk menegaskan bahwa Future gagal, pasangkan expectLater dengan throwsA agar pengujian memverifikasi bahwa kesalahan yang tepat dilemparkan.

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

Stream Menghasilkan Banyak Nilai

Stream mengirimkan rangkaian peristiwa seiring waktu. Mengujinya berarti memeriksa seluruh rangkaian tersebut dalam urutan yang benar.

Pencocok emits

Gunakan emits untuk menegaskan nilai berikutnya yang dihasilkan stream, dan emitsInOrder untuk rangkaian yang diharapkan.

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

Tandai Akhirnya

Pencocok emitsDone memeriksa bahwa stream ditutup sesuai harapan, sehingga stream yang tidak pernah selesai dapat terdeteksi.

expectLater(ticks, emitsThrough(emitsDone));

Stream Juga Dapat Menghasilkan Kesalahan

Gabungkan pencocok untuk mengharapkan kesalahan dalam stream dengan emitsError, dan verifikasi bahwa kegagalan tiba sebagai peristiwa.

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

Waspadai Keberhasilan Palsu

Kesalahan umum: lupa menunggu membuat pengujian berakhir terlalu dini dan berhasil tanpa diketahui. Selalu tunggu atau kembalikan pekerjaan asinkron.

Batas Waktu Menyelamatkan Anda

Jika kode asinkron macet, pelaksana akan menghentikannya. Anda dapat menyesuaikan waktu tunggu dengan batas waktu pada pengujian yang lambat.

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

Pemeriksaan Singkat

Bagaimana cara menegaskan bahwa stream menghasilkan 1, 2, 3 secara berurutan?

Ringkasan

Anda menunggu Future, menggunakan expectLater dengan completion dan throwsA, serta memeriksa stream dengan pencocok emits. Kode asinkron, diuji dengan percaya diri. 🌊

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menguji Kode async dan Stream” gratis?

Ya — teks lengkap “Menguji Kode async dan Stream” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Dart Academy, upgrade ke CoddyKit PRO. Kursus Dart Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menguji Kode async dan Stream”?

Menunggu future dan memverifikasi urutan peristiwa Kamu berlatih Dart Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Dart Academy?

Tidak diperlukan pengalaman sebelumnya. Dart Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menguji Kode async dan Stream” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Dart Academy ini?

Ya. Setiap pelajaran Dart Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. test dan expect Pertama Anda
  2. group, setUp, dan tearDown
  3. Menguji Kode async dan Stream
  4. Mock, Fake, dan Cakupan
← Kembali ke Dart Academy