Rumah  >  Artikel  >  Java  >  Bagaimanakah Mockito Boleh Memudahkan Pengujian Kelas Abstrak?

Bagaimanakah Mockito Boleh Memudahkan Pengujian Kelas Abstrak?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 18:48:30554semak imbas

How Can Mockito Simplify Testing Abstract Classes?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn