Suntikan kebergantungan menggunakan rangka kerja ujian unit JUnit
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.
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
实例注入到 MyService
Di sini Dalam ujian:
- Anotasi
@Mock
mencipta objek tiruanDataProvider
. Kaedah -
@Sebelum
dijalankan sebelum setiap kaedah ujian dan digunakan untuk menetapkan data ujian. - Anotasi
@Test
menandakan kaedah ujian untuk menguji kaedahgetFormattedData()
dalam kelasMyService
. - Kaedah
Mockito.when()
mengkonfigurasikan tingkah laku mengejekDataProvider
supaya ia dipanggil apabilagetData()
kaedah dipanggil Returns "hello world". -
assertEquals()
Penegasan menyemak sama ada data berformat yang dikembalikan oleh kaedahgetFormattedData()
sepadan dengan nilai yang dijangkakan.
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Dreamweaver Mac版
Alat pembangunan web visual