Pengesahan
Sahkan tingkah laku
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/assertFalseassertNull/assertNotNull,assertThrowsassertAlluntuk semakan berkumpulan- Tambahkan mesej untuk kejelasan
Seterusnya: memalsukan kebergantungan dengan MockK.
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.