Rumah >Java >javaTutorial >Bagaimana untuk Mengejek Kaedah Void dalam Mockito dengan Berkesan?

Bagaimana untuk Mengejek Kaedah Void dalam Mockito dengan Berkesan?

Linda Hamilton
Linda Hamiltonasal
2024-12-25 03:39:08509semak imbas

How to Mock Void Methods in Mockito Effectively?

Kaedah Void Mengejek dengan Mockito

Kaedah void mengejek dalam Mockito boleh dicapai menggunakan kaedah dari doThrow(), doAnswer(), doNothing (), dan keluarga doReturn(). Kaedah ini membolehkan anda menentukan gelagat untuk kaedah olok-olok yang mempunyai jenis pulangan tidak sah.

Contoh:

// Mock a void method that throws an exception
Mockito.doThrow(new Exception()).when(instance).methodName();

// Mock a void method that performs some action
Mockito.doAnswer(new Answer<Void>() {
    public Void answer(InvocationOnMock invocation) {
        Object[] args = invocation.getArguments();
        System.out.println("called with arguments: " + Arrays.toString(args));
        return null;
    }
}).when(instance).methodName();

Dalam contoh khusus anda, anda boleh mengejek kaedah setState() dalam kelas Dunia seperti berikut:

// Mock the World class
World mockWorld = mock(World.class); 

// Mock the setState method to print the arguments passed to it
doAnswer(new Answer<Void>() {
    public Void answer(InvocationOnMock invocation) {
        Object[] args = invocation.getArguments();
        System.out.println("called with arguments: " + Arrays.toString(args));
        return null;
    }
}).when(mockWorld).setState(anyString());

Sekarang, apabila anda memanggil mockWorld.setState() dalam ujian anda, Jawapan yang disediakan akan dilaksanakan, membolehkan anda mengesahkan bahawa hujah yang betul telah dihantar kepada kaedah.

Atas ialah kandungan terperinci Bagaimana untuk Mengejek Kaedah Void dalam Mockito dengan Berkesan?. 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