Kotlin Academy · Pelajaran

Pengesahan

Sahkan tingkah laku

Pelajaran 2 daripada 413 langkah

Pengesahan ialah pelajaran Kotlin Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kotlin Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kotlin Academy merangkumi sejumlah 4 pelajaran.

Apakah Penegasan?

Penegasan menyemak bahawa nilai sebenar sepadan dengan nilai yang Anda jangkakan. Jika penegasan gagal, ujian gagal dengan mesej yang membantu.

JUnit5 menyediakan penegasan dalam org.junit.jupiter.api.Assertions.

assertEquals

Penegasan yang paling biasa digunakan. Perhatikan susunannya: nilai dijangka dahulu, nilai sebenar kemudian.

import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val sum = 2 + 3
    assertEquals(5, sum)
    println("passed")
}

assertTrue dan assertFalse

Buat penegasan terhadap syarat Boolean secara terus.

import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Assertions.assertFalse

fun main() {
    assertTrue(10 > 5)
    assertFalse("".isNotEmpty())
    println("ok")
}

Penegasan Nil

Gunakan assertNull dan assertNotNull untuk mengesahkan kebolehnilan. assertNotNull juga melakukan penukaran jenis pintar dalam banyak keadaan.

import org.junit.jupiter.api.Assertions.assertNotNull
import org.junit.jupiter.api.Assertions.assertNull

fun main() {
    val name: String? = "Ada"
    assertNotNull(name)
    assertNull(null)
    println("done")
}

Membuat Penegasan terhadap Pengecualian

assertThrows mengesahkan bahawa suatu blok menghasilkan pengecualian tertentu. Ia mengembalikan pengecualian tersebut supaya Anda boleh memeriksa mesejnya.

import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val ex = assertThrows(IllegalArgumentException::class.java) {
        require(false) { "bad input" }
    }
    assertEquals("bad input", ex.message)
    println("caught")
}

Penegasan Berkumpulan

assertAll menjalankan berbilang penegasan dan melaporkan semua kegagalan bersama-sama, bukannya berhenti pada kegagalan pertama.

import org.junit.jupiter.api.Assertions.assertAll
import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    assertAll(
        { assertEquals(2, 1 + 1) },
        { assertEquals(4, 2 + 2) }
    )
    println("all passed")
}

Mesej Kegagalan

Hantar mesej (atau lambda mesej tertunda) untuk menjadikan kegagalan mudah difahami tanpa penjelasan tambahan.

import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val balance = 100
    assertEquals(100, balance, "balance should be unchanged")
    println("ok")
}

Membandingkan Koleksi

assertEquals berfungsi untuk senarai apabila susunan dan kandungannya sepadan. Gunakan assertIterableEquals untuk lelaran daripada jenis konkrit yang berbeza.

import org.junit.jupiter.api.Assertions.assertEquals

fun main() {
    val expected = listOf(1, 2, 3)
    val actual = (1..3).toList()
    assertEquals(expected, actual)
    println("lists equal")
}

Penegasan Lancar dengan AssertK

Pustaka seperti AssertK menawarkan gaya assertThat(x).isEqualTo(y) yang mudah dibaca dan popular dalam pangkalan kod Kotlin.

// assertThat(result).isEqualTo(5)
// assertThat(list).contains("a", "b")
// assertThat(name).isNotNull()

fail()

Panggil fail untuk memaksa kegagalan, yang berguna bagi menandai cabang yang tidak boleh dicapai atau ujian yang belum selesai.

import org.junit.jupiter.api.Assertions.fail

fun process(x: Int): String = when {
    x > 0 -> "positive"
    else -> fail("unexpected value")
}

Memilih Penegasan yang Tepat

Pilih penegasan yang paling khusus untuk menghasilkan kegagalan yang jelas:

  • Kesamaan → assertEquals
  • Syarat → assertTrue/assertFalse
  • Ralat → assertThrows
  • Semakan berbilang → assertAll

Semakan Pantas

Anda mahu ujian melaporkan setiap semakan yang gagal serentak, bukannya berhenti pada semakan pertama. Apakah yang Anda gunakan?

Ringkasan

Sekarang Anda mengetahui penegasan JUnit5:

  • assertEquals (nilai dijangka dahulu), assertTrue/assertFalse
  • assertNull/assertNotNull, assertThrows
  • assertAll untuk semakan berkumpulan
  • Tambahkan mesej untuk kejelasan

Seterusnya: memalsukan kebergantungan dengan MockK.

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
51
Pelajaran
203

Soalan Lazim

Adakah pelajaran “Pengesahan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kotlin Academy, termasuk “Pengesahan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kotlin Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengesahan”?

Sahkan tingkah laku Anda berlatih Kotlin 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 Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kotlin 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 “Pengesahan” 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 Academy ini?

Ya. Setiap pelajaran Kotlin 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. Menulis ujian dengan JUnit5
  2. Pengesahan
  3. Penyamaran dengan MockK
  4. Pengujian korutin
← Kembali ke Kotlin Academy