Rumah >Java >javaTutorial >Bagaimana untuk Menguji Kelas dengan Panggilan `new()` Terbenam Menggunakan Mockito Spies?
Menguji Kelas dengan Terbenam baharu() Panggilan Menggunakan Mockito
Pertimbangkan kelas warisan (TestedClass) yang menjadikan objek LoginContext menggunakan panggilan new() langsung:
<code class="java">public class TestedClass { public LoginContext login(String user, String password) { LoginContext lc = new LoginContext("login", callbackHandler); } }</code>
Menguji kelas ini boleh mencabar apabila LoginContext instantiasi memerlukan konfigurasi keselamatan JAAS yang khusus. Untuk menangani perkara ini, kami meneroka penggunaan Mockito untuk mengejek kelas LoginContext tanpa mengubah suai kod sumber asal.
Menggunakan Mockito Spies
Mockito menyediakan mekanisme mudah yang dipanggil pengintip yang membolehkan kami mencipta pengintip objek sebenar, yang melaksanakan kaedah berikut:
Untuk menguji kelas kami dengan pengintip, kami boleh memperkenalkan kod berikut:
<code class="java">TestedClass tc = spy(new TestedClass()); LoginContext lcMock = mock(LoginContext.class); when(tc.login(anyString(), anyString())).thenReturn(lcMock);</code>
Kod ini mencipta seorang pengintip contoh TestedClass (tc ) dan mengejek kelas LoginContext melalui lcMock. Pernyataan when() memotong kaedah login() untuk mengembalikan LoginContext yang dipermainkan.
Menggajikan pengintip membolehkan kami menguji kelas asal tanpa mengubah mekanisme panggilan new()nya, menawarkan pendekatan ujian yang fleksibel dan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Menguji Kelas dengan Panggilan `new()` Terbenam Menggunakan Mockito Spies?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!