Penggunaan rangka kerja ujian kotak putih (JUnit)
Rangka kerja Junit:
Junit ialah rangka kerja ujian unit java sumber terbuka.
Hari ini kami akan memperkenalkan junit5 yang terdiri daripada tiga modul sub-projek berbeza, termasuk Junit Platform, Junit Jupiter dan Junit Vintage. Ia menyokong Java 8 dan ke atas Editor yang saya gunakan di sini ialah IntelliJ IDEA Anda hanya perlu menyemak hasil akhir untuk mengetahui sama ada antara muka kaedah keseluruhan projek. Setiap kes ujian unit agak bebas, dimulakan oleh Junit, dan dipanggil secara automatik. Tidak perlu menambah pernyataan panggilan tambahan.
Tambah, padam dan sekat kaedah ujian tanpa menjejaskan kaedah ujian lain.
Junit digunakan terutamanya untuk ujian kotak putih Langkah-langkah untuk ujian kotak putih adalah seperti berikut:
1 Peringkat perancangan ujian: Kembangkan jadual ujian mengikut spesifikasi keperluan.
2. Peringkat reka bentuk ujian: Mengikut fungsi kod, kes ujian direka secara manual untuk menjalankan ujian fungsi asas. Mengikut arahan pengaturcaraan, struktur perisian dibahagikan dan kes ujian direka mengikut kaedah piawai tertentu.
3. Fasa pelaksanaan ujian: masukkan kes ujian dan dapatkan keputusan ujian.
4. Peringkat ringkasan ujian: Bandingkan keputusan ujian dengan keputusan kod yang dijangkakan, analisis punca ralat, cari dan selesaikan ralat.
Seterusnya, mari perkenalkan anotasi di dalam:
@Test: Mewakili kaedah ujian tanpa mengisytiharkan sebarang atribut.
@ParameterizedTest: Menunjukkan bahawa kaedah tersebut ialah kaedah ujian Selain itu, anotasi ini juga boleh membenarkan kaedah ujian dijalankan beberapa kali menggunakan orang yang berbeza.
@RepeatedTest: Anotasi ini membenarkan kaedah ujian untuk menyesuaikan bilangan larian berulang.
@TestFactory: Menunjukkan bahawa kaedah adalah berdasarkan sumber data ujian dinamik dipacu data.
@Displayname: Mengisytiharkan nama paparan tersuai untuk kelas ujian atau kaedah ujian.
@BeforeEach: Menunjukkan bahawa kaedah yang ditentukan dijalankan sebelum setiap kaedah ujian dijalankan.
@AfterEach: Menunjukkan bahawa kaedah yang ditentukan akan dijalankan selepas setiap kaedah ujian dijalankan.
@BeforeAll: Dilaksanakan sebelum semua kaedah ujian kelas semasa, kaedah ini boleh mengandungi beberapa kod permulaan.
@AfterAll: Dilaksanakan selepas semua kaedah ujian kelas semasa.
@Dilumpuhkan: Menunjukkan bahawa kelas ujian atau kaedah tidak sah.
Penegasan:
Gagal: Ujian penegasan gagal.
AssertTrue/asserFalse: Tegaskan benar atau salah.
AssertNull/assertNotNull: Assert adalah batal atau tidak batal.
assertEquals/assertNotEquals: Tegaskan bahawa dua nilai tidak sama.
AssertArrayEquals: Menegaskan bahawa semua elemen tatasusunan adalah sama.
AssertSame/assertNotSame: Tegaskan sama ada dua objek adalah sama.
AssertThrows/assertDoesNotThrow: Tegaskan sama ada pengecualian dilemparkan.
AssertAll: Tegaskan bahawa berbilang syarat dipenuhi;
Di bawah kami mencipta kelas dan mencipta beberapa kaedah:
package test;//包机制 import java.lang.reflect.Array; public class MixedOperation { public int mixeOperation(int x,int y){ return division((x+y),y); } public int division(int x,int y){ int result=(x/y); return result; } public static void main(String[] args) { MixedOperation mixedOperation=new MixedOperation(); System.out.println(mixedOperation.mixeOperation(5,1)); } }
Kami mencipta kelas yang dipanggil MixedOperation ;
package test; import org.junit.jupiter.api.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; public class MixedOperationTest { private MixedOperation mixedOperation; @BeforeEach public void init(){ mixedOperation=new MixedOperation(); } @Test public void successTest(){ System.out.println("run a test:x=4,y=2"); int result=mixedOperation.mixeOperation(4,2); Assertions.assertEquals(3,result); } /* @DisplayName("失败") public void errorTest(){` System.out.println("run a test:x=4,y=0"); ArithmeticException exception=new ArithmeticException( ArithmeticException.class -> { mixedOperation.mixeOperation(4, 0); } ); }*/ @Disabled("参数") @Test @DisplayName("参数") @ParameterizedTest @CsvSource({"6,3,3","5,2,3","6,2,4"}) public void caTest(int x,int y,int excepted){ System.out.println("run a test :x="+x+"y="+y); System.out.println(excepted); int t= mixedOperation.mixeOperation(x,y); Assertions.assertEquals(excepted,t); } @Disabled @Test public void Next(){ System.out.println("抛出一个异常"); System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0))); } @Disabled @Test void error(){ Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);}); } @Test void sure(){ int result=mixedOperation.mixeOperation(4,2); Assertions.assertTrue(3==result);//断言相等 } }
Ini ialah kelas ujian yang kami buat dipanggil MixedOperationTest;
Cadangan berkaitan: "tutorial video java"
Atas ialah kandungan terperinci Penggunaan rangka kerja ujian kotak putih (JUnit). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anotasi dalam rangka kerja JUnit digunakan untuk mengisytiharkan dan mengkonfigurasi kaedah ujian Anotasi utama termasuk: @Ujian (pengisytiharan kaedah ujian), @Sebelum (kaedah dijalankan sebelum kaedah ujian dilaksanakan), @Selepas (kaedah dijalankan selepas kaedah ujian. dilaksanakan), @ BeforeClass (kaedah yang dijalankan sebelum semua kaedah ujian dilaksanakan), @AfterClass (kaedah yang dijalankan selepas semua kaedah ujian dilaksanakan), anotasi ini membantu mengatur dan memudahkan kod ujian dan meningkatkan kebolehpercayaan kod ujian dengan menyediakan niat dan konfigurasi yang jelas.

JUnit ialah rangka kerja ujian unit untuk Java yang menyediakan alatan ringkas untuk menguji komponen aplikasi. Selepas memasang kebergantungan, anda boleh menguji kelas dengan menulis kelas ujian unit yang mengandungi anotasi @Test dan mengesahkan nilai yang dijangka dan sebenar menggunakan kaedah penegasan seperti assertEquals. JUnit menyediakan banyak ciri seperti menyediakan kaedah, mesej kegagalan dan mekanisme tamat masa.

Terdapat dua pendekatan biasa apabila menggunakan JUnit dalam persekitaran berbilang benang: ujian berbenang tunggal dan ujian berbilang benang. Ujian berutas tunggal dijalankan pada utas utama untuk mengelakkan isu konkurensi, manakala ujian berbilang utas dijalankan pada utas pekerja dan memerlukan pendekatan ujian disegerakkan untuk memastikan sumber yang dikongsi tidak terganggu. Kes penggunaan biasa termasuk menguji kaedah selamat berbilang benang, seperti menggunakan ConcurrentHashMap untuk menyimpan pasangan nilai kunci, dan utas serentak untuk beroperasi pada pasangan nilai kunci dan mengesahkan ketepatannya, mencerminkan aplikasi JUnit dalam persekitaran berbilang benang. .

Rangka kerja ujian unit JUnit ialah alat yang digunakan secara meluas yang kelebihan utamanya termasuk ujian automatik, maklum balas pantas, kualiti kod yang dipertingkatkan dan mudah alih. Tetapi ia juga mempunyai had, termasuk skop terhad, kos penyelenggaraan, kebergantungan, penggunaan memori dan kekurangan sokongan integrasi berterusan. Untuk ujian unit aplikasi Java, JUnit ialah rangka kerja berkuasa yang menawarkan banyak faedah, tetapi batasannya perlu dipertimbangkan apabila menggunakannya.

JUnit ialah rangka kerja ujian unit Java yang digunakan secara meluas dalam projek Spring dan boleh digunakan dengan langkah berikut: Tambah kebergantungan JUnit: org.junit.jupiterjunit-jupiter5.8.1test Tulis kes ujian: Gunakan @ExtendWith(SpringExtension.class) untuk mendayakan sambungan, gunakan @Autowired inject beans, gunakan @BeforeEach dan @AfterEach untuk menyediakan dan membersihkan, dan tandakan kaedah ujian dengan @Test.

Dalam JUnit, anda boleh menjalankan kes ujian dalam mod nyahpepijat dengan mengaitkan pelari BlockJUnit4ClassRunner menggunakan anotasi @RunWith. Tetapkan titik putus untuk menjeda pelaksanaan dan memeriksa pembolehubah. Gunakan System.out.println() untuk mengeluarkan maklumat bagi menjejaki pelaksanaan kod. Sahkan nilai yang dijangka dan sebenar menggunakan kaedah penegasan JUnitAssert.

Mengikuti amalan terbaik rangka kerja ujian unit JUnit membolehkan pengesahan kod yang berkesan: Tulis ujian bebas Letakkan ujian di tempat yang sesuai Gunakan penegasan untuk mengesahkan keputusan dengan bijak Ikuti konvensyen penamaan (bermula dengan ujian) Tulis ujian negatif Gunakan Ejek dan Stubbing untuk mengasingkan kebergantungan Elakkan menggunakan statik pembolehubah untuk mengalih keluar kod pendua dan mengautomasikan pelaksanaan ujian

Rangka kerja ujian unit JUnit boleh menyelesaikan masalah kebocoran memori biasa dengan berkesan. Isu kebocoran biasa termasuk rujukan pembolehubah statik berterusan dan sumber tidak tertutup. JUnit menyediakan pengesan kebocoran dan alat untuk menganalisis penggunaan memori untuk mencari punca kebocoran. Penyelesaian termasuk menggunakan pembolehubah tempatan, rujukan lemah, menutup sumber dengan betul dan menggunakan pernyataan cuba-dengan-sumber. Dengan mengikuti garis panduan ini, pembangun boleh mencipta persekitaran ujian JUnit yang boleh dipercayai dan stabil.
