Rumah > Java > javaTutorial > teks badan

Ujian Lanjutan dengan JUnit 5

PHPz
Lepaskan: 2024-08-07 01:42:42
asal
1163 orang telah melayarinya

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");
    }
}
Salin selepas log masuk
  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
        }
    }
}
Salin selepas log masuk
  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)));
    }
}
Salin selepas log masuk
  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
    }
}
Salin selepas log masuk
  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
    }
}
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!