Rumah  >  Artikel  >  Java  >  Bagaimanakah anotasi dalam rangka kerja Mockito memudahkan penjanaan dan pengesahan rintisan?

Bagaimanakah anotasi dalam rangka kerja Mockito memudahkan penjanaan dan pengesahan rintisan?

WBOY
WBOYasal
2024-05-06 17:48:021009semak imbas

Anotasi rangka kerja Mockito memudahkan penjanaan stub dan proses pengesahan: @Mock: menjana dan mengurus objek tiruan secara automatik. @Captor: Tangkap nilai parameter yang dihantar kepada kaedah olok-olok. @InjectMocks: Menyuntik objek olok-olok secara automatik ke dalam kelas yang diuji. @Spy: Cipta beberapa objek stub dan kekalkan pelaksanaan kaedah asal.

Bagaimanakah anotasi dalam rangka kerja Mockito memudahkan penjanaan dan pengesahan rintisan?

Anotasi dalam rangka kerja Mockito: Memudahkan penjanaan stub dan pengesahan

Pengenalan

Mockito ialah rangka kerja ujian unit Java popular yang mampu mensimulasikan gelagat. Menggunakan Mockito, anda boleh menjana objek tiruan dan mengesahkan interaksinya dengan mudah. Bermula dari versi 1.10, Mockito memperkenalkan anotasi baharu yang boleh memudahkan lagi penjanaan stub dan proses pengesahan.

Gunakan anotasi @Mock untuk menjana stub

@Mock
private Foo foo;

@Mock anotasi boleh menjana dan mengurus objek mock foo secara automatik. Ia bersamaan dengan kod berikut: @Mock 注解可以自动生成并管理模拟 foo 对象。它等效于以下代码:

Foo foo = mock(Foo.class);

使用 @Captor 注解捕获参数

ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);

@Captor 注解可以捕获传递给模拟方法的参数。通过调用其 getValue() 方法,可以获取参数值。

实战案例:验证方法调用

@Test
public void testFoo() {
    foo.bar("baz");
    
    verify(foo).bar(captor.capture());
    assertEquals("baz", captor.getValue());
}

使用 @InjectMocks 注解注入模拟对象

@InjectMocks
private FooImpl foo;

@Mock
private Bar bar;

@InjectMocks 注解可以自动将模拟对象注入到被测类中。因此,无需手动设置注入依赖项。

使用 @Spy 注解创建部分桩

@Spy
private Foo foo;

@Spy 注解创建部分桩对象。与 @Mock 不同,@Spyrrreee

Menangkap parameter menggunakan anotasi @Captor rrreee

@Captor anotasi boleh menangkap parameter yang dihantar kepada kaedah mengejek. Nilai parameter boleh diperoleh dengan memanggil kaedah getValue()nya.

🎜Kes praktikal: Sahkan panggilan kaedah🎜🎜rrreee🎜🎜Gunakan anotasi @InjectMocks untuk menyuntik objek olok-olok🎜🎜rrreee🎜 @InjectMocks anotasi di bawah kelas ujian secara automatik boleh menyuntik objek olok-olok. Oleh itu, tidak perlu menyediakan kebergantungan yang disuntik secara manual. 🎜🎜🎜Gunakan anotasi @Spy untuk membuat stub separa 🎜🎜rrreee🎜 @Spy anotasi mencipta objek stub separa. Tidak seperti @Mock, objek @Spy masih mengekalkan pelaksanaan kaedah asalnya. Ini berguna apabila menggunakan objek sebenar untuk menguji atau mengesahkan kaedah peribadi. 🎜🎜🎜Kesimpulan🎜🎜🎜Anotasi dalam rangka kerja Mockito menyediakan cara yang mudah untuk memudahkan penjanaan dan pengesahan stub. Dengan menggunakan anotasi ini, anda boleh menjadikan ujian unit anda lebih ringkas dan boleh dibaca. 🎜

Atas ialah kandungan terperinci Bagaimanakah anotasi dalam rangka kerja Mockito memudahkan penjanaan dan pengesahan rintisan?. 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