Cara menggunakan rangka kerja ujian unit JUnit Kaedah statik olok-olok: PowerMock: Tambah pergantungan PowerMock. Gunakan anotasi @PrepareForTest untuk menentukan kaedah statik untuk dipermainkan. Gunakan kaedah statik EasyMock to Mock. EasyMock: Import kelas EasyMock. Gunakan kaedah EasyMock.mockStatic() untuk mengejek kaedah statik. Gunakan kaedah expect() untuk menetapkan nilai yang dijangkakan dan kaedah replay() untuk melaksanakan panggilan.
Menggunakan rangka kerja ujian unit JUnit Kaedah statik olok-olok
Pengenalan
Apabila menggunakan JUnit untuk ujian unit, objek Mock diperlukan untuk mengasingkan komponen luaran yang bergantung kepada kod di bawah ujian. Untuk kaedah statik, kami tidak boleh terus menggunakan rangka kerja Mock tradisional seperti Mockito. Artikel ini akan menunjukkan cara untuk mengejek kaedah statik menggunakan rangka kerja PowerMock dan EasyMock.
PowerMock
PowerMock ialah rangka kerja mengejek yang berkuasa untuk Java yang boleh Mengejek kaedah statik, muktamad dan peribadi. Untuk menggunakan PowerMock, sila tambahkan kebergantungan berikut pada pom anda Anda boleh menggunakan kaedah statik EasyMock to Mock:
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-easymock</artifactId> <version>2.0.10</version> <scope>test</scope> </dependency>
EasyMock ialah rangka kerja Mock ringan yang boleh digunakan terus ke kelas dan antara muka Mock. Begini cara menggunakan kaedah statik EasyMock Mock: @ExtendWith(PowerMockRunner.class)
@PrepareForTest(TargetClass.class)
class TestClass {
// ...
Andaikan kita mempunyai kelas TargetClass yang bergantung pada UtilityClass yang mengandungi kaedah statik getStaticData(). Kami ingin menguji kaedah dalam TargetClass yang bergantung pada UtilityClass.
Menggunakan PowerMockStaticMock.mockStatic(TargetClass.class); ... // 设置预期值和执行调用 StaticMock.verify(TargetClass.class);
Menggunakan EasyMock
// 导入 EasyMock 类 import static org.easymock.EasyMock.*; ... // Mock 静态方法 EasyMock.mockStatic(TargetClass.class); TargetClass.staticMethod(); ... // 设置预期值和执行调用 EasyMock.verify(TargetClass.class);
Kesimpulan
PowerMock dan EasyMock menyediakan pilihan yang fleksibel untuk mengejek kaedah statik. Rangka kerja ini boleh menjadikan ujian anda lebih bebas dan boleh dipercayai.
Atas ialah kandungan terperinci Gunakan rangka kerja ujian unit JUnit Kaedah statik olok-olok. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!