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:
@Mock
mencipta objek tiruan DataProvider
. Kaedah @Sebelum
dijalankan sebelum setiap kaedah ujian dan digunakan untuk menetapkan data ujian. @Test
menandakan kaedah ujian untuk menguji kaedah getFormattedData()
dalam kelas MyService
. 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. 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!