Rumah >Java >javaTutorial >Pembangunan dipacu ujian menggunakan JUnit5 dan Mockito

Pembangunan dipacu ujian menggunakan JUnit5 dan Mockito

王林
王林ke hadapan
2023-08-19 23:57:071508semak imbas

Pembangunan dipacu ujian menggunakan JUnit5 dan Mockito

Test Driven Development (TDD) ialah pendekatan pembangunan perisian di mana ujian ditulis sebelum kod sebenar. TDD telah mendapat perhatian yang besar kerana penekanannya pada kualiti dan kebolehselenggaraan kod. Artikel ini meneroka cara melaksanakan TDD dengan berkesan menggunakan JUnit5 dan Mockito, dua rangka kerja yang berkuasa dalam ekosistem Java.

Apakah pembangunan yang dipacu ujian?

Pembangunan Dipacu Ujian ialah proses pembangunan berulang Pembangun mula-mula menulis kes ujian untuk fungsi atau ciri baharu, kemudian menulis jumlah minimum kod untuk lulus ujian, dan akhirnya memfaktorkan semula kod kepada pengoptimuman. Pendekatan ini meningkatkan reka bentuk, mengurangkan ralat dan meningkatkan kebolehselenggaraan keseluruhan kod.

Memahami JUnit5 dan Mockito

JUnit5 ialah versi terkini JUnit, rangka kerja ujian unit yang digunakan secara meluas dalam Java. Ia memperkenalkan beberapa ciri dan penambahbaikan baharu yang meningkatkan kemudahan dan fleksibiliti ujian di Jawa.

Mockito, sebaliknya, ialah rangka kerja mengejek untuk mencipta objek olok-olok dan mentakrifkan kelakuannya, berguna untuk menguji kod dengan kebergantungan luaran.

Pembangunan dipacu ujian menggunakan JUnit5 dan Mockito

Langkah 1: Tulis ujian yang gagal

Langkah pertama dalam TDD ialah menulis ujian yang gagal. Untuk tujuan ini, dalam JUnit5 kami mentakrifkan kaedah beranotasi dengan @Test -

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class ExampleTest {

   @Test
   void shouldReturnTrueWhenNumberIsEven() {
       Example example = new Example();
       boolean result = example.isNumberEven(3);
       assertTrue(result);
   }
}

Ujian ini akan gagal pada mulanya kerana kami belum melaksanakan kaedah isNumberEven dalam kelas Contoh.

Selepas ujian gagal, kami menulis kod yang cukup untuk lulus ujian. Contohnya -

class Example {

   boolean isNumberEven(int num) {
       return num % 2 == 0;
   }
}

Jalankan ujian sekali lagi dan kita harus melihat bahawa ujian itu lulus kerana kaedah isNumberEven kini menyemak dengan betul sama ada nombor adalah genap.

Langkah 3: Faktorkan semula kod

Langkah terakhir melibatkan menapis dan mengoptimumkan kod tanpa mengubah tingkah lakunya. Walaupun contoh kami sangat mudah dan mungkin tidak memerlukan pemfaktoran semula, dalam kes yang lebih kompleks langkah ini mungkin melibatkan pengurangan redundansi, meningkatkan kebolehbacaan atau mengoptimumkan prestasi.

Terjemahan bahasa Cina bagi

Mengejek dengan Mockito

ialah:

Gunakan Mockito untuk ujian simulasi

Gunakan Mockito untuk mencipta objek olok-olok apabila kaedah yang perlu diuji melibatkan kebergantungan luaran. Ini membolehkan kaedah diuji secara berasingan −

import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;

class ExampleTest {

   @Test
   void shouldCallDependency() {
       // Arrange
       Dependency dependency = Mockito.mock(Dependency.class);
       Example example = new Example(dependency);

       // Act
       example.performAction();
		
       // Assert
       verify(dependency, times(1)).action();
   }
}

Dalam ujian ini, kami mencipta objek pergantungan yang diejek dan mengesahkan bahawa apabila kami memanggil kaedah performAction pada objek Contoh, kaedah tindakannya dipanggil sekali.

Kesimpulan

Pembangunan Dipacu Ujian, digabungkan dengan JUnit5 dan Mockito, menyediakan asas yang kukuh untuk menulis kod berkualiti tinggi dan boleh diselenggara. Dengan memahami kitaran TDD dan menggunakan rangka kerja ini dengan berkesan, pembangun boleh meningkatkan kemahiran ujian dan kualiti kod mereka dengan ketara.

Atas ialah kandungan terperinci Pembangunan dipacu ujian menggunakan JUnit5 dan Mockito. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam