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

Bagaimana untuk Mengejek Kaedah Void dalam Mockito dengan Berkesan?

Linda Hamilton
Lepaskan: 2024-12-25 03:39:08
asal
506 orang telah melayarinya

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();
Salin selepas log masuk

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());
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan