Rumah > Java > javaTutorial > teks badan

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

Susan Sarandon
Lepaskan: 2024-10-30 08:01:27
asal
435 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!