Kotlin Academy · Pelajaran

Menulis Test dengan JUnit5

Susun test

Pelajaran 1 dari 413 langkah

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:

  • @Test menandai pengujian, sedangkan @DisplayName memberinya nama
  • @BeforeEach / @BeforeAll menangani penyiapan
  • Atur-Lakukan-Verifikasi menjaga pengujian tetap jelas
  • @Nested dan @ParameterizedTest mengatur dan memperluas pengujian

Berikutnya: asersi.

Gratis untuk memulai

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

  1. Menulis Test dengan JUnit5
  2. Pernyataan
  3. Mocking dengan MockK
  4. Pengujian Coroutine
← Kembali ke Kotlin Academy