Menguji Kelas Abstrak dengan Mockito
Kelas abstrak menimbulkan cabaran untuk ujian unit kerana kekurangan pelaksanaan konkrit. Walaupun penciptaan olok-olok manual adalah pilihan, ia boleh memakan masa dan rumit.
Mockito menawarkan penyelesaian yang elegan untuk menguji kelas abstrak tanpa penciptaan olok-olok manual. Begini cara ia berfungsi:
Mengejek Kelas Abstrak:
<code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>
Dengan menggunakan Jawapan.CALLS_REAL_METHODS, anda mengarahkan Mockito untuk melaksanakan yang sebenar pelaksanaan kaedah yang tidak ditindih, membolehkan anda menguji kelakuan kaedah abstrak.
Kaedah Abstrak Stub seperti yang Diperlukan:
Untuk abstrak kaedah yang anda mahu kawal semasa ujian, gunakan sintaks berikut:
<code class="java">Mockito.when(mock.methodIDontCareAbout()).thenReturn(null);</code>
Ini akan memotong kaedah abstrak khusus, memberikan tingkah laku yang diingini.
Contoh:
Pertimbangkan senario berikut:
<code class="java">public abstract class My { public Result methodUnderTest() { ... } protected abstract void methodIDontCareAbout(); } @Test public void shouldFailOnNullIdentifiers() { My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS); Assert.assertSomething(my.methodUnderTest()); }</code>
Dalam contoh ini, kaedah abstrak IDontCareAbout() tidak digunakan dalam kaedah yang diuji. Dengan mengejeknya dengan thenReturn(null), anda secara berkesan mengabaikannya semasa ujian.
Pendekatan ini menyediakan cara yang ringkas dan mudah untuk menguji kelas abstrak, menghapuskan keperluan untuk olok-olok buatan tangan dan memudahkan ujian yang cekap bukan- kelas konkrit.
Atas ialah kandungan terperinci Cara Menguji Kelas Abstrak dengan Mockito: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!