Rumah  >  Artikel  >  Java  >  Bagaimana Cara Mengejek untuk Mengembalikan Hujah yang Diterima di Java?

Bagaimana Cara Mengejek untuk Mengembalikan Hujah yang Diterima di Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-23 22:18:29924semak imbas

How to Mock Methods to Return Arguments Received in Java?

Kaedah Mengejek untuk Mengembalikan Hujah Yang Diterima

Dalam pengaturcaraan berorientasikan objek, rangka kerja mengejek seperti Mockito digunakan untuk mencipta objek olok-olok yang mensimulasikan kelakuan objek sebenar untuk tujuan ujian. Satu senario biasa dalam ujian ialah keperluan untuk mempunyai kaedah yang diejek mengembalikan hujah yang sama yang telah dihantar kepadanya.

Ungkapan Mockito dan Lambda (Mockito 1.9.5 dan Java 8 )

Untuk versi Mockito 1.9.5 dan kemudian bersama-sama dengan Java 8 atau lebih tinggi, anda boleh memanfaatkan ungkapan lambda untuk mencapai gelagat ini:

when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</p>
<p>Di sini, saya mewakili contoh InvocationOnMock, dan getArguments()[0] mendapatkan semula hujah pertama yang diserahkan kepada kaedah yang dipermainkan.</p>
<p><h3>Mockito dan Jawapan Tersuai (Versi Lama)</h3></p>
<p>Untuk yang lebih lama versi Mockito, anda boleh menggunakan pelaksanaan Mockito Answer tersuai:</p>
<pre class="brush:php;toolbar:false"><code class="java">MyInterface mock = mock(MyInterface.class);
when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() {
    @Override
    public String answer(InvocationOnMock invocation) throws Throwable {
        Object[] args = invocation.getArguments();
        return (String) args[0];
    }
});</code>

Jawapan tersuai ini mendapatkan semula hujah yang diluluskan dan mengembalikannya, membenarkan kaedah yang diejek menggemakan input yang diterima.

Atas ialah kandungan terperinci Bagaimana Cara Mengejek untuk Mengembalikan Hujah yang Diterima di Java?. 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