Rumah  >  Artikel  >  Java  >  Bagaimanakah Mockito Boleh Membantu Anda Menguji Kelas Abstrak Tanpa Subkelas Eksplisit?

Bagaimanakah Mockito Boleh Membantu Anda Menguji Kelas Abstrak Tanpa Subkelas Eksplisit?

Susan Sarandon
Susan Sarandonasal
2024-10-30 08:01:27425semak imbas

How Can Mockito Help You Test Abstract Classes Without Explicit Subclassing?

Mockito dan Menguji Kelas Abstrak

Menguji kelas abstrak boleh menimbulkan cabaran. Olok-olok kerajinan tangan secara manual melalui pewarisan terasa menyusahkan dan berlebihan. Nasib baik, rangka kerja mengejek seperti Mockito menawarkan pendekatan alternatif.

BANTUAN Mockito DENGAN KELAS ABSTRAK MENGEJEMKAN

Mockito membolehkan mengejek kelas abstrak yang lancar sambil memintas keperluan untuk subkelas yang jelas. Dengan menggunakan Mockito.mock(My.class, Answers.CALLS_REAL_METHODS), anda boleh mencipta olok-olok yang diwarisi daripada kelas abstrak. Olok-olok ini bertindak sebagai kedua-dua subkelas dan olok-olok separa.

MENGELAK PELAKSANAAN KAEDAH ABSTRAK

Konfigurasi Answers.CALLS_REAL_METHODS membolehkan anda mengejek kaedah abstrak tanpa melaksanakannya. Kaedah sebenar akan dilaksanakan seperti sedia ada, melainkan jika dihentikan secara eksplisit dalam ujian anda.

CONTOH PELAKSANAAN

Pertimbangkan kelas abstrak berikut dan kes ujian:

<code class="java">public abstract class My {
  public Result methodUnderTest() { ... }
  protected abstract void methodIDontCareAbout();
}
 
public class MyTest {
    @Test
    public void shouldFailOnNullIdentifiers() {
        My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
        Assert.assertSomething(my.methodUnderTest());
    }
}</code>

Dalam contoh ini, olok-olok dibuat menggunakan Mockito.mock(), dan Answers.CALLS_REAL_METHODS memastikan kaedah methodUnderTest() dijalankan seperti yang ditakrifkan dalam kelas abstrak, walaupun methodIDontCareAbout() tidak dilaksanakan . Pendekatan ini memudahkan proses ujian dan menghapuskan keperluan untuk penciptaan subkelas manual.

Atas ialah kandungan terperinci Bagaimanakah Mockito Boleh Membantu Anda Menguji Kelas Abstrak Tanpa Subkelas Eksplisit?. 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