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
490 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!

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