Dalam proses pembangunan perisian, ujian unit ialah teknologi penting. Pengujian unit merujuk kepada pengujian unit terkecil yang boleh diuji seperti fungsi, kaedah, kelas, dan lain-lain dalam perisian untuk memastikan kualiti dan kestabilan perisian. Di Jawa, kemahiran ujian unit juga sangat kaya dan penting. Dalam artikel ini, kami akan membincangkan beberapa teknik ujian unit di Jawa.
JUnit ialah salah satu rangka kerja ujian unit yang paling biasa digunakan di Java. Ia menyediakan satu siri anotasi dan kaedah penegasan, menjadikannya lebih mudah bagi kami untuk menulis dan menjalankan ujian unit. Langkah-langkah untuk ujian unit menggunakan JUnit adalah seperti berikut:
1) Perkenalkan kebergantungan JUnit, seperti kebergantungan dalam Maven:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
2) Tulis kelas ujian dan gunakan anotasi @Test dalam kelas ujian Tandakan kaedah yang akan diuji.
import org.junit.Test; import static org.junit.Assert.assertEquals; public class MyTest { @Test public void testAdd() { assertEquals(2, 1 + 1); } }
Dalam projek, terdapat beberapa kod yang bergantung pada kelas atau komponen lain biasanya tidak tersedia dalam ujian unit. . Dalam kes ini, kita perlu menggunakan Mockito untuk ujian simulasi. Mockito ialah rangka kerja mengejek Java yang popular yang boleh digunakan untuk mencipta objek olok-olok dalam dalam ujian unit. Langkah-langkah untuk menggunakan Mockito untuk ujian simulasi adalah seperti berikut:
1) Perkenalkan kebergantungan Mockito, seperti kebergantungan dalam Maven:
<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.7.22</version> <scope>test</scope> </dependency>
2) Gunakan kaedah Mockito.mock() dalam ujian kelas untuk mencipta objek simulasi, dan memanggil kaedah objek simulasi dalam kaedah ujian untuk perbandingan penegasan.
import org.junit.Test; import static org.mockito.Mockito.*; public class MyTest { @Test public void test() { // 创建模拟对象 MyClass mock = mock(MyClass.class); // 模拟返回值 when(mock.doSomething()).thenReturn(2); // 断言比对 assertEquals(2, mock.doSomething()); } }
Dalam sesetengah kes, kita perlu menguji unit kaedah statik dan peribadi. Walau bagaimanapun, JUnit dan Mockito tidak menyediakan sokongan untuk menguji kaedah statik dan kaedah persendirian secara langsung Dalam kes ini, kami boleh menggunakan PowerMock.
PowerMock ialah rangka kerja yang berfungsi dengan JUnit dan Mockito serta menyediakan sokongan ujian untuk kaedah statik dan peribadi. Langkah-langkah untuk menggunakan PowerMock untuk ujian unit adalah seperti berikut:
1) Perkenalkan kebergantungan PowerMock, seperti kebergantungan dalam Maven:
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-core</artifactId> <version>2.0.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>2.0.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>2.0.0</version> <scope>test</scope> </dependency>
2) Gunakan anotasi @RunWith(PowerMockRunner.class) pada kelas ujian Memperkenalkan PowerMockRunner.
import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import static org.powermock.api.mockito.PowerMockito.*; @RunWith(PowerMockRunner.class) @PrepareForTest(MyClass.class) public class MyTest { @Test public void test() throws Exception { // 模拟静态方法的返回值 when(MyClass.staticMethod()).thenReturn(2); // 模拟私有方法的返回值 MyClass mock = spy(new MyClass()); when(mock, method(MyClass.class, "privateMethod")) .withNoArguments().thenReturn(3); // 断言比对 assertEquals(2, MyClass.staticMethod()); assertEquals(3, mock.callPrivateMethod()); } }
Di atas ialah beberapa teknik ujian unit dalam Java Ia boleh membantu kami menulis dan menjalankan ujian unit dengan lebih cekap dan mudah, serta meningkatkan kualiti dan kestabilan perisian. Sudah tentu, dalam kerja sebenar, teknik ujian unit harus dipilih dan diselaraskan mengikut keadaan tertentu.
Atas ialah kandungan terperinci Petua ujian unit di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!