Rumah > Java > javaTutorial > @Mock vs. @InjectMocks dalam Mockito: Bila Perlu Menggunakan Yang Mana?

@Mock vs. @InjectMocks dalam Mockito: Bila Perlu Menggunakan Yang Mana?

Mary-Kate Olsen
Lepaskan: 2024-11-24 06:49:16
asal
434 orang telah melayarinya

@Mock vs. @InjectMocks in Mockito: When to Use Which?

Bila Menggunakan @Mock vs. @InjectMocks dalam Mockito

Mockito ialah rangka kerja yang popular untuk mengejek dan ujian unit di Java. Ia menyediakan dua anotasi untuk mengejek: @Mock dan @InjectMocks. Adalah penting untuk memahami perbezaan mereka untuk menggunakan olok-olok secara berkesan dalam ujian anda.

@Mock

@Mock digunakan untuk menjana objek tiruan. Apabila anda menganotasi medan dengan @Mock, Mockito mencipta objek kelas yang ditentukan dan mendaftarkannya sebagai olok-olok. Olok-olok ini akan mematuhi gelagat antara muka olok-olok, menyediakan pengganti untuk objek sebenar dalam ujian anda.

@InjectMocks

Sebaliknya, @InjectMocks menganotasikan contoh a kelas dalam ujian. Mockito menyuntik objek olok-olok yang dibuat dengan anotasi @Mock ke dalam kejadian ini. Teknik ini membolehkan anda menguji kelakuan kelas yang diuji semasa berinteraksi dengan kebergantungan olok-olok tertentu.

Pertimbangan Penggunaan

Untuk menggunakan @Mock dan @InjectMocks, anda' Saya perlu memulakan olok-olok dan menyuntiknya. Dalam JUnit 4, gunakan @RunWith(MockitoJUnitRunner.class) atau Mockito.initMocks(this). Untuk JUnit 5, gunakan @ExtendWith(MockitoExtension.class).

Contoh

Pertimbangkan contoh berikut yang menggambarkan penggunaan @Mock dan @InjectMocks:

// JUnit 4
@RunWith(MockitoJUnitRunner.class)
public class SomeManagerTest {

    @InjectMocks
    private SomeManager someManager;

    @Mock
    private SomeDependency someDependency; // injected into someManager
    
    // tests...
}
Salin selepas log masuk

Dalam contoh ini, someManager disuntik dengan contoh olok-olok beberapa Kebergantungan. Ujian kini boleh menegaskan bagaimana someManager berinteraksi dengan olok-olok ini.

Kesimpulan

Menggunakan @Mock dan @InjectMocks dengan sewajarnya adalah penting untuk ujian unit berasaskan Mockito yang berkesan. Dengan memahami dengan jelas peranan mereka, anda boleh memastikan ketepatan dan kebolehpercayaan ujian anda.

Atas ialah kandungan terperinci @Mock vs. @InjectMocks dalam Mockito: Bila Perlu Menggunakan Yang Mana?. 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