Kelas Abstrak Mengejek dengan Mockito
Menguji kelas abstrak boleh menimbulkan cabaran, terutamanya jika penciptaan olok-olok manual dipertimbangkan. Walau bagaimanapun, memanfaatkan Mockito menawarkan pendekatan alternatif.
Mockito.mock() dengan Jawapan.CALLS_REAL_METHODS
Daripada membina kelas olok-olok secara manual, kaedah mock() Mockito boleh digunakan dengan hujah Answers.CALLS_REAL_METHODS. Pilihan ini menjana kelas olok-olok yang mewarisi daripada kelas abstrak dan membolehkan ujian kaedah sebenar tanpa melaksanakannya secara eksplisit.
Contoh:
Pertimbangkan kelas abstrak My dengan kaedah di bawah kaedah ujianUnderTest() dan kaedah kaedah abstrakIDontCareAbout(). Coretan kod berikut menunjukkan cara menguji methodUnderTest() menggunakan pendekatan ini:
<code class="java">@Test public void shouldFailOnNullIdentifiers() { My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS); Assert.assertSomething(my.methodUnderTest()); }</code>
Dalam contoh ini, Mockito.mock(My.class, Answers.CALLS_REAL_METHODS) mencipta contoh olok-olok My yang membenarkan yang sebenar pelaksanaan methodUnderTest() untuk dijalankan, membolehkan ujian logiknya. Pada masa yang sama, kaedah kaedah abstrakIDontCareAbout() tidak perlu dilaksanakan, kerana ia tidak digunakan oleh ujian.
Faedah
Pendekatan ini menyelaraskan ujian. kelas abstrak dengan menghapuskan keperluan untuk mencipta subkelas tersuai atau melaksanakan kaedah abstrak. Ia juga mengekalkan pemisahan yang diingini antara kelas abstrak dan kes ujian, membolehkan ujian yang lebih bersih dan ringkas.
Atas ialah kandungan terperinci Bagaimanakah Mockito Boleh Memudahkan Pengujian Kelas Abstrak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!