Kotlin Multiplatform Academy · Pelajaran

Uji Fungsi suspend & Flow

Gunakan runTest dan Turbine untuk mengesahkan tingkah laku tak segerak.

Pelajaran 2 daripada 413 langkah

Uji Fungsi suspend & Flow ialah pelajaran Kotlin Multiplatform Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kotlin Multiplatform Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kotlin Multiplatform Academy merangkumi sejumlah 4 pelajaran.

Asinkron Memerlukan Ujian Khas

Fungsi suspend dan Flow tidak selesai serta-merta, jadi anda memerlukan alat yang menunggu kerja asinkron selesai sebelum membuat penegasan. ⏳

Berkenalan dengan runTest

Bungkus penegasan asinkron dalam runTest daripada pustaka coroutines-test; ia menyediakan skop dan melangkau kelewatan maya secara automatik.

@Test
fun loadsUser() = runTest {
    val u = repo.load(1)
    assertEquals("Sam", u.name)
}

Tambah Pembantu Ujian

Masukkan kotlinx-coroutines-test ke dalam commonTest supaya runTest dan fungsi berkaitannya tersedia pada setiap sasaran.

implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.0")

Menunggu Hasil suspend

Di dalam runTest, anda hanya perlu memanggil fungsi suspend secara terus dan membuat penegasan terhadap apa sahaja yang dikembalikannya.

val total = calc.fetchTotal()
assertEquals(42, total)

Masa Berlalu Secara Percuma

runTest menggunakan masa maya, jadi delay selama beberapa saat diselesaikan serta-merta dan ujian anda kekal pantas.

Menguji Aliran Secara Manual

Anda boleh mengumpulkan Aliran yang terhingga ke dalam senarai dengan toList dan membuat penegasan terhadap nilai yang dipancarkan.

val values = numbers().toList()
assertEquals(listOf(1, 2, 3), values)

Sebab Turbine Membantu

Untuk aliran yang berterusan, pustaka Turbine membolehkan anda menunggu item satu demi satu tanpa perlu mengurus pengumpulan secara manual.

Tambah Turbine

Masukkan Turbine ke dalam commonTest; ia ialah pembantu kecil berbilang platform yang dibina khusus untuk menguji Aliran.

implementation("app.cash.turbine:turbine:1.1.0")

Tunggu Item dengan ujian

Turbine membungkus Aliran dalam blok ujian, tempat awaitItem mengembalikan setiap pancaran mengikut turutan.

flow.test {
    assertEquals(1, awaitItem())
    awaitComplete()
}

Tamatkan Aliran dengan Kemas

Akhiri setiap blok Turbine dengan awaitComplete atau batalkan blok tersebut; jika tidak, ujian akan gagal kerana terdapat peristiwa yang belum digunakan.

Buat Penegasan terhadap Kemas Kini StateFlow

Turbine amat berguna untuk StateFlow: tunggu nilai awal, cetuskan tindakan, kemudian tunggu keadaan yang dipancarkan seterusnya.

Semakan Pantas

Pilih pembungkus ujian tak segerak yang betul.

Imbas Kembali

Gunakan runTest untuk kod suspend dan blok ujian Turbine untuk menunggu pancaran Aliran, semuanya daripada commonTest.

Percuma untuk bermula

Pelajari Kotlin dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Uji Fungsi suspend & Flow” percuma?

Ya — teks penuh “Uji Fungsi suspend & Flow” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Kotlin Multiplatform Academy, tingkat taraf kepada CoddyKit PRO. Kursus Kotlin Multiplatform Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Uji Fungsi suspend & Flow”?

Gunakan runTest dan Turbine untuk mengesahkan tingkah laku tak segerak. Anda berlatih Kotlin Multiplatform Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kotlin Multiplatform Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kotlin Multiplatform Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Uji Fungsi suspend & Flow” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kotlin Multiplatform Academy ini?

Ya. Setiap pelajaran Kotlin Multiplatform Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. kotlin.test dalam commonTest
  2. Uji Fungsi suspend & Flow
  3. Palsukan Klien & Repositori Ktor
  4. Jalankan Ujian pada Sasaran Android & iOS
← Kembali ke Kotlin Multiplatform Academy