Rumah  >  Artikel  >  Java  >  Rangka kerja ujian unit Mockito dan JUnit: cara bekerjasama

Rangka kerja ujian unit Mockito dan JUnit: cara bekerjasama

WBOY
WBOYasal
2024-04-18 13:36:01572semak imbas

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: cara bekerjasama

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 单元测试此类,您可以执行以下步骤:

  1. 创建模拟:使用 Mockito.mock() 方法创建一个 UserRepository 的模拟对象。
  2. 设置期望值:使用 Mockito 的 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));
        }
    }
  3. Untuk ujian unit kelas ini menggunakan Mockito, anda boleh melakukan langkah berikut:
    1. Buat olok-olok:
  4. Buat objek olok-olok UserRepository menggunakan kaedah Mockito.mock().
  5. Tetapkan nilai jangkaan:
  6. Gunakan kaedah when() Mockito untuk menetapkan nilai pulangan jangkaan kaedah findAll() dalam UserRepository.

Buat objek untuk diuji:

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.

  • Begini cara menulis kod ujian:
  • rrreee
  • Nota
Terdapat beberapa perkara yang perlu diambil perhatian apabila menggunakan Mockito:

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!

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