Rumah >Java >javaTutorial >Rangka kerja ujian unit Mockito dan JUnit: cara bekerjasama
Mockito dan JUnit bergabung tenaga untuk meningkatkan kecekapan ujian unit: Mockito membenarkan penciptaan stub ujian dan objek olok-olok untuk mengesahkan interaksi kod yang dijangkakan. JUnit menyediakan rangka kerja yang memudahkan menulis dan menjalankan ujian. Apabila digunakan bersama, anda boleh membuat ujian yang sangat mudah dibaca dan boleh diselenggara yang mengesahkan ketepatan kod anda dengan berkesan.
Rangka kerja ujian unit Mockito dan JUnit: gabungan berkuasa
Pengenalan
Mockito ialah rangka kerja Java yang berkuasa yang membolehkan anda membuat stub ujian dengan mudah dan menguji kod anda dengan berkesan. Apabila digabungkan dengan rangka kerja ujian unit JUnit, Mockito menjadi alat yang berkuasa untuk membangunkan perisian yang stabil dan boleh dipercayai.
Prinsip asas Mockito
Mockito adalah berdasarkan pengesahan tingkah laku. Ia membolehkan anda mengisytiharkan interaksi yang dijangkakan dengan objek ujian anda dan kemudian mengesahkan bahawa interaksi ini benar-benar berlaku semasa ujian. Anda boleh menggunakan Mockito untuk mencipta objek tunas (yang mengembalikan nilai yang ditentukan atau melakukan tindakan tertentu), dan objek mengejek (untuk mengesahkan panggilan dan interaksi dengan mereka).
JUnit digabungkan dengan Mockito
JUnit menyediakan rangka kerja untuk menulis dan menjalankan ujian unit. Apabila digabungkan dengan Mockito, anda boleh membuat ujian yang sangat mudah dibaca dan diselenggara dengan baik yang boleh mengesahkan ketepatan kod anda dengan berkesan.
Kes praktikal
Andaikan anda mempunyai kelas yang dipanggil UserService
yang mengandungi kaedah findAll()
yang mengambil semua pengguna daripada pangkalan data: UserService
的类,其中包含一个 findAll()
方法,该方法从数据库中检索所有用户:
public class UserService { private UserRepository userRepository; public UserService(UserRepository userRepository) { this.userRepository = userRepository; } public List<User> findAll() { return userRepository.findAll(); } }
要使用 Mockito 单元测试此类,您可以执行以下步骤:
Mockito.mock()
方法创建一个 UserRepository 的模拟对象。when()
@ExtendWith(MockitoExtension.class) public class UserServiceTest { @Mock private UserRepository userRepository; @InjectMocks private UserService userService; @Test public void testFindAll() { // 设置期望值 List<User> expectedUsers = Arrays.asList(new User(), new User()); when(userRepository.findAll()).thenReturn(expectedUsers); // 执行测试 List<User> actualUsers = userService.findAll(); // 验证结果 assertThat(actualUsers, is(expectedUsers)); } }
Mockito.mock()
. when()
Mockito untuk menetapkan nilai pulangan jangkaan kaedah findAll() dalam UserRepository. Buat instance UserService menggunakan UserRepository yang dipermainkan.
Laksanakan ujian:Gunakan anotasi @Test JUnit dan kaedah assertThat() untuk menyemak sama ada keputusan panggilan kaedah findAll() memenuhi jangkaan.
Pastikan anda mengasingkan ujian anda untuk mengelakkan pencemaran kod pengeluaran anda.
Tetapkan jangkaan dengan berhati-hati untuk mengelakkan ujian palsu atau berlebihan.
🎜Gunakan kaedah pengesahan yang sesuai (seperti pengesahan() dan jangan sekali-kali()) untuk objek olok-olok. 🎜🎜🎜🎜Kesimpulan🎜🎜🎜Mockito digabungkan dengan JUnit menyediakan set alat yang berkuasa untuk ujian perisian. Dengan bijak memanfaatkan objek stub, objek olok-olok dan jangkaan, anda boleh membuat ujian unit yang komprehensif dan cekap untuk memastikan kualiti dan kebolehpercayaan kod anda. 🎜Atas ialah kandungan terperinci Rangka kerja ujian unit Mockito dan JUnit: cara bekerjasama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!