Rumah  >  Artikel  >  Java  >  Ujian unit dan ujian integrasi berdasarkan Spring Boot

Ujian unit dan ujian integrasi berdasarkan Spring Boot

PHPz
PHPzasal
2023-06-22 11:01:581745semak imbas

Memandangkan pembangunan perisian terus berkembang, ujian menjadi semakin penting. Dalam pembangunan tangkas, ujian adalah pautan penting. Ujian dibahagikan kepada dua jenis: ujian unit dan ujian integrasi. Ujian unit menguji bahagian kecil kod bebas ujian integrasi menguji keseluruhan sistem. Artikel ini akan menumpukan pada ujian unit dan ujian integrasi berdasarkan Spring Boot.

1. Pengujian Unit

Rangka Kerja Spring Boot menyediakan rangka kerja ujian unit yang lengkap. Dengan menggunakan rangka kerja Spring Boot Test, kami boleh menulis kes ujian dengan mudah. Berikut ialah kes ujian mudah:

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {

    @Autowired
    UserService userService;

    @Test
    public void testFindById() {
        User user = userService.findById(1L);
        Assert.assertNotNull(user);
        Assert.assertEquals("张三", user.getName());
    }
}

Antaranya, anotasi @RunWith menentukan pelari ujian sebagai SpringRunner.class, yang digunakan untuk memuatkan konteks Spring ApplicationContext. @SpringBootTestMenentukan aplikasi Spring Boot untuk dimuatkan dan memulakan konteks aplikasi untuk ujian.

Dalam kes ujian, kami secara automatik memasang @Autowired dengan menggunakan anotasi UserService dan memanggil kaedah findById di dalamnya untuk ujian. Tentukan sama ada nilai pulangan memenuhi jangkaan dengan menggunakan pernyataan Assert.

2. Ujian integrasi

Spring Boot menyediakan pelbagai kaedah ujian untuk melengkapkan ujian integrasi. Kami boleh menggunakan anotasi @SpringBootTest untuk memuatkan aplikasi Spring Boot dan menggunakan TestRestTemplate untuk menghantar permintaan HTTP.

Berikut ialah contoh:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class UserControllerTest {

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void testFindById() {
        User user = restTemplate.getForObject("/users/1", User.class);
        Assert.assertEquals("张三", user.getName());
    }
}

di mana nilai parameter @SpringBootTest dalam webEnvironment ialah WebEnvironment.RANDOM_PORT, menunjukkan bahawa port rawak digunakan untuk memulakan konteks aplikasi. TestRestTemplateDigunakan untuk menghantar permintaan HTTP. Dalam kes ujian, kami menghantar permintaan HTTP GET ke /users/1 dan menggunakan pernyataan Assert untuk menentukan sama ada nilai pulangan memenuhi jangkaan.

3. Ringkasan

Spring Boot menyediakan set lengkap rangka kerja ujian unit dan integrasi, yang memudahkan untuk menulis kes ujian. Dalam pembangunan sebenar, kita harus menulis seberapa banyak kes ujian yang mungkin untuk memastikan kualiti dan kestabilan kod. Pada masa yang sama, kami juga boleh melengkapkan automasi ujian dan meningkatkan kecekapan dan kualiti pembangunan dengan menyepadukan alat CI/CD.

Atas ialah kandungan terperinci Ujian unit dan ujian integrasi berdasarkan Spring Boot. 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