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

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

WBOY
Lepaskan: 2024-05-06 17:48:02
asal
1066 orang telah melayarinya

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

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

Foo foo = mock(Foo.class);
Salin selepas log masuk

使用 @Captor 注解捕获参数

ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
Salin selepas log masuk

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

实战案例:验证方法调用

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

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

@InjectMocks
private FooImpl foo;

@Mock
private Bar bar;
Salin selepas log masuk

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

使用 @Spy 注解创建部分桩

@Spy
private Foo foo;
Salin selepas log masuk

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

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan