Rumah  >  Artikel  >  Java  >  Penggunaan rangka kerja ujian kotak putih (JUnit)

Penggunaan rangka kerja ujian kotak putih (JUnit)

**
**asal
2021-11-29 09:33:243522semak imbas

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!

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