Rumah  >  Artikel  >  Java  >  Ujian Lanjutan dengan JUnit 5

Ujian Lanjutan dengan JUnit 5

PHPz
PHPzasal
2024-08-07 01:42:421165semak imbas

Advanced Testing with JUnit 5

JUnit. Ia memperkenalkan beberapa ciri berkuasa dan peningkatan yang memudahkan untuk menulis, menyusun dan menjalankan ujian. Memahami ciri lanjutan ini boleh membantu anda mencipta suite ujian yang lebih mantap dan boleh diselenggara.

Apakah JUnit 5?

JUnit 5 ialah kemas kini utama kepada rangka kerja JUnit, direka bentuk untuk menjadi lebih fleksibel dan modular. Ia terdiri daripada tiga komponen utama:

  1. Platform JUnit: Asas untuk melancarkan rangka kerja ujian pada JVM.
  2. JUnit Jupiter: Model pengaturcaraan baharu dan model sambungan untuk ujian penulisan.
  3. JUnit Vintage: Menyediakan sokongan untuk menjalankan ujian JUnit 3 dan JUnit 4 pada platform JUnit 5.

Ciri Utama JUnit 5

  1. Nama Paparan: Anotasi ujian dengan nama paparan tersuai untuk kebolehbacaan yang lebih baik.
  2. Ujian Bersarang: Susun ujian secara hierarki untuk menggambarkan struktur kod yang diuji.
  3. Ujian Dinamik: Buat ujian secara dinamik pada masa jalan.
  4. Teg dan Penapisan: Kumpulan ujian menggunakan teg dan tapiskannya semasa pelaksanaan.
  5. Penegasan dan Andaian: Sokongan yang dipertingkatkan untuk penegasan dan andaian untuk mengawal aliran pelaksanaan ujian.

Contoh: Menggunakan Ciri Lanjutan JUnit 5

  1. Nama Paparan Tersuai:
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

@DisplayName("Calculator Tests")
class CalculatorTest {

    @Test
    @DisplayName("Addition Test")
    void testAddition() {
        assertEquals(2, 1 + 1, "1 + 1 should equal 2");
    }
}
  1. Ujian Bersarang:
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

class OuterTest {

    @Nested
    class InnerTest {
        @Test
        void innerTest() {
            // Test logic here
        }
    }
}
  1. Ujian Dinamik:
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;

class DynamicTestsDemo {

    @TestFactory
    Stream<DynamicTest> dynamicTests() {
        return Stream.of(1, 2, 3, 4, 5)
                .map(number -> dynamicTest("Test number " + number, () -> assertTrue(number > 0)));
    }
}
  1. Tag dan Penapisan:
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;

class TaggingTest {

    @Test
    @Tag("fast")
    void fastTest() {
        // Fast test logic here
    }

    @Test
    @Tag("slow")
    void slowTest() {
        // Slow test logic here
    }
}
  1. Pernyataan dan Andaian:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assumptions.assumeTrue;

class AssertionsDemo {

    @Test
    void testException() {
        assertThrows(IllegalArgumentException.class, () -> {
            throw new IllegalArgumentException("Exception message");
        });
    }

    @Test
    void testAssumption() {
        assumeTrue(5 > 1);
        // Test logic here
    }
}

Kesimpulan

JUnit 5 membawakan banyak ciri dan peningkatan baharu yang menjadikannya alat yang berkuasa untuk ujian Java moden. Dengan memanfaatkan keupayaan lanjutan ini, anda boleh mencipta suite ujian yang lebih teratur, fleksibel dan boleh diselenggara, memastikan kod anda teguh dan boleh dipercayai.

Atas ialah kandungan terperinci Ujian Lanjutan dengan JUnit 5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Coretan Kod Java :)Artikel seterusnya:Coretan Kod Java :)