cari
RumahJavajavaTutorialSuntikan kebergantungan menggunakan rangka kerja ujian unit JUnit

Suntikan kebergantungan menggunakan rangka kerja ujian unit JUnit

Apr 19, 2024 am 08:42 AM
Ujian unitsuntikan pergantungan

Untuk menguji suntikan kebergantungan menggunakan JUnit, ringkasannya adalah seperti berikut: Gunakan objek olok-olok untuk mencipta kebergantungan: Anotasi @Mock mencipta objek olok-olok untuk kebergantungan. Tetapkan data ujian: Kaedah @Sebelum dijalankan sebelum setiap kaedah ujian dan digunakan untuk menetapkan data ujian. Mengkonfigurasi gelagat olok-olok: Kaedah Mockito.when() mengkonfigurasi gelagat yang dijangkakan bagi objek olok-olok. Sahkan keputusan: assertEquals() penegasan menyemak sama ada keputusan sebenar sepadan dengan nilai yang dijangkakan. Aplikasi praktikal: Anda boleh menggunakan rangka kerja suntikan kebergantungan (seperti Rangka Kerja Spring) untuk menyuntik kebergantungan, dan mengesahkan ketepatan suntikan dan operasi biasa kod melalui ujian unit JUnit.

Suntikan kebergantungan menggunakan rangka kerja ujian unit JUnit

Gunakan rangka kerja ujian unit JUnit untuk suntikan kebergantungan

Dalam pembangunan perisian, suntikan kebergantungan ialah corak reka bentuk berkuasa yang membolehkan kami mengurus kebergantungan antara objek secara fleksibel. Menggunakan rangka kerja ujian unit JUnit boleh membantu kami menguji kod yang diuruskan oleh suntikan pergantungan.

Contoh kod

Ambil kelas Java yang mudah sebagai contoh:

public class MyService {
    private DataProvider dataProvider;

    public MyService(DataProvider dataProvider) {
        this.dataProvider = dataProvider;
    }

    public String getFormattedData() {
        return dataProvider.getData().toUpperCase();
    }
}

Ujian unit

Anda boleh menggunakan JUnit untuk menulis ujian unit untuk menguji kelas MyService:

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;

import static org.junit.Assert.assertEquals;

public class MyServiceTest {

    @Mock
    private DataProvider dataProvider;

    private MyService service;

    @Before
    public void setup() {
        service = new MyService(dataProvider);
    }

    @Test
    public void shouldFormatDataCorrectly() {
        Mockito.when(dataProvider.getData()).thenReturn("hello world");
        String formattedData = service.getFormattedData();
        assertEquals("HELLO WORLD", formattedData);
    }
}
MyService 类:

rrreee

在此测试中:

  • @Mock 注解创建了 DataProvider 的一个模拟对象。
  • @Before 方法在每个测试方法之前运行,用于设置测试数据。
  • @Test 注解标记了一个测试方法,用于测试 MyService 类中的 getFormattedData() 方法。
  • Mockito.when() 方法配置了 DataProvider 的模拟行为,使它在 getData() 方法被调用时返回"hello world"。
  • assertEquals() 断言检查 getFormattedData() 方法返回的格式化数据是否与预期值匹配。

实际案例

在实际应用中,可以使用依赖注入框架(如 Spring Framework)将 DataProvider 实例注入到 MyServiceDi sini Dalam ujian:

  • Anotasi @Mock mencipta objek tiruan DataProvider. Kaedah
  • @Sebelum dijalankan sebelum setiap kaedah ujian dan digunakan untuk menetapkan data ujian.
  • Anotasi @Test menandakan kaedah ujian untuk menguji kaedah getFormattedData() dalam kelas MyService.
  • Kaedah Mockito.when() mengkonfigurasikan tingkah laku mengejek DataProvider supaya ia dipanggil apabila getData() kaedah dipanggil Returns "hello world".
  • assertEquals() Penegasan menyemak sama ada data berformat yang dikembalikan oleh kaedah getFormattedData() sepadan dengan nilai yang dijangkakan.
🎜🎜Kes sebenar🎜🎜🎜Dalam aplikasi sebenar, anda boleh menggunakan rangka kerja suntikan pergantungan (seperti Rangka Kerja Spring) untuk menyuntik contoh DataProvider ke dalam MyService kelas. Dengan menggunakan JUnit untuk ujian unit, kami boleh mengesahkan ketepatan suntikan pergantungan dan memastikan kod berjalan dengan betul di bawah senario yang berbeza. 🎜

Atas ialah kandungan terperinci Suntikan kebergantungan menggunakan rangka kerja ujian unit JUnit. 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual