Rumah >Java >javaTutorial >Bagaimana untuk mengejek Kaedah Peribadi dalam Mockito dengan PowerMock?

Bagaimana untuk mengejek Kaedah Peribadi dalam Mockito dengan PowerMock?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 16:00:30285semak imbas

How to Mock Private Methods in Mockito with PowerMock?

Mengejek Kaedah Peribadi dalam Mockito dengan PowerMock

Menguji kelas dengan kaedah persendirian boleh menimbulkan cabaran, terutamanya apabila ketepatan kaedah persendirian tersebut adalah diandaikan. Satu penyelesaian untuk perkara ini ialah menggunakan PowerMock bersama-sama dengan Mockito.

Untuk mengejek kaedah peribadi menggunakan PowerMock, ikut langkah berikut:

  1. Buat objek pengintip: Gunakan PowerMockito.spy() untuk mencipta objek pengintip kelas yang anda mahu ujian.
  2. Gunakan PowerMockito.when(): Takrifkan gelagat kaedah persendirian menggunakan PowerMockito.when(). Kaedah ini mengambil tiga parameter:

    • Objek pengintip
    • Penjodoh kaedah (dalam kes ini, penjodoh kaedah() sudah memadai)
    • Tingkah laku untuk dikembalikan apabila kaedah persendirian dipanggil

Sebagai contoh, kod berikut mengejek kaedah persendirian "doTheGamble" untuk sentiasa kembali benar:

<code class="java">CodeWithPrivateMethod spy = PowerMockito.spy(new CodeWithPrivateMethod());

when(spy, method(CodeWithPrivateMethod.class, "doTheGamble", String.class, int.class))
        .withArguments(anyString(), anyInt())
        .thenReturn(true);</code>
  1. Uji kaedah awam: Akhir sekali, anda boleh menggunakan objek pengintip anda untuk menguji kaedah awam yang memanggil kaedah peribadi.

Dengan mengikuti langkah-langkah ini, anda boleh mengejek kaedah persendirian dengan berkesan untuk ujian menggunakan PowerMock dan Mockito.

Atas ialah kandungan terperinci Bagaimana untuk mengejek Kaedah Peribadi dalam Mockito dengan PowerMock?. 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