Rumah > Java > javaTutorial > teks badan

@MockBean, @Mock, atau Mockito.mock(): Pendekatan Mengejek Mana Yang Perlu Anda Pilih?

Patricia Arquette
Lepaskan: 2024-11-01 05:17:27
asal
954 orang telah melayarinya

  @MockBean, @Mock, or Mockito.mock(): Which Mocking Approach Should You Choose?

Memahami @MockBean, @Mock, dan Mockito.mock() untuk Mengejek Berkesan

Dalam bidang ujian perisian, kebergantungan mengejek dimainkan peranan penting dalam mengasingkan dan menguji komponen individu. Di antara pelbagai pendekatan yang tersedia, artikel ini menyelidiki nuansa antara @MockBean, @Mock, dan Mockito.mock() untuk ejekan kebergantungan.

@Mock (@Mock and Mockito.mock())

Mockito's @Mock dan Mockito.mock() adalah setara dan membenarkan untuk kelas atau antara muka mengejek, membolehkan rakaman dan pengesahan tingkah laku. Pendekatan berasaskan anotasi selalunya diutamakan kerana ringkasnya.

@MockBean (Spring Boot)

@MockBean ialah kelas Spring Boot yang direka khusus untuk memperkenalkan olok-olok ke dalam Konteks Aplikasi Musim Bunga. Tidak seperti @Mock, ia tidak menggantikan kacang sedia ada tetapi menambah atau menggantikan kacang yang serasi dengan kelas olok-olok.

Bila Gunakan Apa?

Keputusan antara @Mock dan @MockBean bergantung pada keperluan ujian. Untuk ujian unit yang tidak memerlukan kebergantungan Spring Boot dan mengutamakan kelajuan pelaksanaan, @Mock disyorkan.

Namun, jika ujian bergantung pada bekas Spring Boot dan memerlukan mengejek atau menggantikan kacang bekas, @MockBean menawarkan kemudahan penyelesaian.

Lazim @MockBean Contoh

Sekeping ujian web menggunakan @WebMvcTest selalunya menggunakan @MockBean untuk mengejek kebergantungan:

@MockBean
private FooService fooServiceMock;
Salin selepas log masuk

Dalam kaedah ujian, perkhidmatan yang diejek boleh dikonfigurasikan dan kelakuannya disahkan :

@Test
public void testExample() throws Exception {
    Foo mockedFoo = new Foo("one", "two");
    Mockito.when(fooServiceMock.get(1)).thenReturn(mockedFoo);

    mvc.perform(get("foos/1")
       .accept(MediaType.TEXT_PLAIN))
       .andExpect(status().isOk())
       .andExpect(content().string("one two"));
}
Salin selepas log masuk

Dengan memahami fungsi berbeza @MockBean, @Mock, dan Mockito.mock(), pembangun boleh memilih pendekatan yang paling sesuai untuk keperluan ejekan khusus mereka, yang membawa kepada ujian yang cekap dan berkesan.

Atas ialah kandungan terperinci @MockBean, @Mock, atau Mockito.mock(): Pendekatan Mengejek Mana Yang Perlu Anda Pilih?. 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