Menguji Kaedah Peribadi dengan PowerMock
Semasa pembangunan perisian, tidak dapat dielakkan untuk menghadapi situasi di mana anda perlu menguji kaedah awam yang bergantung pada peribadi satu. Dalam keadaan sedemikian, dengan mengandaikan kefungsian kaedah persendirian yang betul boleh memudahkan proses ujian. PowerMock ialah rangka kerja ujian Java yang menyediakan mekanisme untuk mengejek kaedah peribadi untuk tujuan ujian.
Mengejek Kaedah Peribadi Menggunakan PowerMock
Untuk mengejek kaedah peribadi menggunakan PowerMock, ikuti ini langkah:
Contoh:
Pertimbangkan kelas berikut dengan kaedah awam (meaningfulPublicApi()) yang menggunakan kaedah peribadi (doTheGamble()):
<code class="java">public class CodeWithPrivateMethod { public void meaningfulPublicApi() { if (doTheGamble("Whatever", 1 << 3)) { throw new RuntimeException("boom"); } } private boolean doTheGamble(String whatever, int binary) { Random random = new Random(System.nanoTime()); boolean gamble = random.nextBoolean(); return gamble; } }</code>
Ujian JUnit yang sepadan menggunakan PowerMock akan kelihatan seperti:
<code class="java">import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.powermock.api.mockito.PowerMockito.when; import static org.powermock.api.support.membermodification.MemberMatcher.method; @RunWith(PowerMockRunner.class) @PrepareForTest(CodeWithPrivateMethod.class) public class CodeWithPrivateMethodTest { @Test(expected = RuntimeException.class) public void when_gambling_is_true_then_always_explode() throws Exception { CodeWithPrivateMethod spy = PowerMockito.spy(new CodeWithPrivateMethod()); when(spy, method(CodeWithPrivateMethod.class, "doTheGamble", String.class, int.class)) .withArguments(anyString(), anyInt()) .thenReturn(true); spy.meaningfulPublicApi(); } }</code>
Dalam contoh ini:
Contoh mudah ini menunjukkan cara mengejek kaedah peribadi untuk ujian menggunakan PowerMock. Dengan memanfaatkan teknik ini, anda boleh mengasingkan dan menguji logik kaedah awam anda dengan berkesan, memastikan kebolehpercayaan perisian anda.
Atas ialah kandungan terperinci Bagaimana untuk mengejek Kaedah Peribadi di Java dengan PowerMock?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!