Menulis Test dengan JUnit5
Susun test
Menulis Test dengan JUnit5 adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Apa itu JUnit5?
JUnit5 (JUnit Jupiter) adalah kerangka kerja pengujian standar untuk JVM dan Kotlin. Kerangka ini menyediakan anotasi untuk menandai dan menyusun kode pengujian.
- Pengujian berada di
src/test/kotlin - Setiap pengujian adalah sebuah fungsi
- Pelaksana menjalankan pengujian tersebut dan melaporkan hasilnya
Menambahkan Dependensi
Tambahkan JUnit Jupiter ke konfigurasi pengujian Anda dan aktifkan platform JUnit.
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
}
tasks.test {
useJUnitPlatform()
}Pengujian Pertama Anda
Beri anotasi @Test pada sebuah fungsi. Pengujian memverifikasi sesuatu tentang kode Anda.
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.assertEquals
class MathTest {
@Test
fun addsTwoNumbers() {
assertEquals(4, 2 + 2)
}
}Nama Pengujian yang Deskriptif
Gunakan @DisplayName untuk laporan pengujian yang mudah dibaca tanpa nama fungsi yang panjang.
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.DisplayName
class OrderTest {
@Test
@DisplayName("total includes tax")
fun totalWithTax() {
// ...
}
}Penyiapan dengan @BeforeEach
@BeforeEach dijalankan sebelum setiap pengujian, sehingga ideal untuk menyiapkan data uji baru. @AfterEach dijalankan setelah setiap pengujian untuk melakukan pembersihan.
import org.junit.jupiter.api.BeforeEach
class CartTest {
private lateinit var cart: MutableList<String>
@BeforeEach
fun setUp() {
cart = mutableListOf()
}
}Penyiapan Tingkat Kelas
@BeforeAll dan @AfterAll dijalankan sekali untuk seluruh kelas. Di Kotlin, keduanya memerlukan objek pendamping dengan @JvmStatic (atau siklus hidup per kelas).
import org.junit.jupiter.api.BeforeAll
class DbTest {
companion object {
@BeforeAll
@JvmStatic
fun connect() {
// open shared connection
}
}
}Atur-Lakukan-Verifikasi
Susun setiap pengujian dalam tiga fase yang jelas:
- Atur — siapkan masukan dan keadaan
- Lakukan — panggil kode yang sedang diuji
- Verifikasi — pastikan hasilnya sesuai
Dengan demikian, pengujian tetap mudah dibaca dan terfokus.
Pengujian Bertingkat
@Nested mengelompokkan pengujian yang terkait dan menghasilkan laporan berbentuk pohon yang mendokumentasikan perilaku.
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
class StackTest {
@Nested
inner class WhenEmpty {
@Test fun isEmpty() { /* ... */ }
}
}Pengujian Berparameter
Jalankan pengujian yang sama dengan beberapa masukan menggunakan @ParameterizedTest dan sumber nilai.
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
import org.junit.jupiter.api.Assertions.assertTrue
class NumberTest {
@ParameterizedTest
@ValueSource(ints = [2, 4, 6])
fun isEven(n: Int) {
assertTrue(n % 2 == 0)
}
}Menonaktifkan dan Memberi Tag
Lewati pengujian untuk sementara dengan @Disabled, dan kelompokkan pengujian dengan @Tag agar Anda dapat menyertakan atau mengecualikannya dalam proses CI.
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test
class FlakyTest {
@Test
@Disabled("fix later")
@Tag("slow")
fun pending() { }
}Contoh Mandiri
Berikut fungsi sederhana murni Kotlin dan gagasan di balik pengujiannya (pengujian itu sendiri dijalankan di bawah JUnit).
fun add(a: Int, b: Int): Int = a + b
fun main() {
val result = add(2, 3)
println(if (result == 5) "PASS" else "FAIL")
}Pemeriksaan Cepat
Anda memerlukan daftar baru yang kosong sebelum setiap metode pengujian. Anotasi mana yang sesuai?
Ringkasan
Anda dapat menyusun pengujian JUnit5:
@Testmenandai pengujian, sedangkan@DisplayNamememberinya nama@BeforeEach/@BeforeAllmenangani penyiapan- Atur-Lakukan-Verifikasi menjaga pengujian tetap jelas
@Nesteddan@ParameterizedTestmengatur dan memperluas pengujian
Berikutnya: asersi.
Belajar Kotlin dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menulis Test dengan JUnit5” gratis?
Ya — teks lengkap “Menulis Test dengan JUnit5” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menulis Test dengan JUnit5”?
Susun test Kamu berlatih Kotlin 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 Kotlin Academy?
Tidak diperlukan pengalaman sebelumnya. Kotlin 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 1 dari 4.
Berapa lama pelajaran “Menulis Test dengan JUnit5” 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 Kotlin Academy ini?
Ya. Setiap pelajaran Kotlin 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
- Menulis Test dengan JUnit5
- Pernyataan
- Mocking dengan MockK
- Pengujian Coroutine