Aplikasi pengesanan ralat dan pencegahan dalam ujian unit fungsi Java: Pengendalian pengecualian: Sahkan sama ada fungsi itu membuang pengecualian apabila menerima input tidak sah. Penegasan: Sahkan bahawa fungsi mengembalikan hasil yang diharapkan. Olok-olok: Asingkan kebergantungan dalam ujian dan permudahkan ujian logik berfungsi.
Pengesanan dan Pencegahan Ralat dalam Pengujian Unit Fungsi Java
Dalam pembangunan perisian, ujian unit ialah amalan penting untuk mengesahkan sama ada satu fungsi atau kaedah berfungsi seperti yang diharapkan. Pengesanan dan pencegahan ralat adalah penting untuk memastikan kualiti kod. Artikel ini meneroka teknik untuk melaksanakan pengesanan dan pencegahan ralat dalam ujian unit fungsi Java.
Pengendalian Pengecualian
Pengecualian dalam Java ialah mekanisme yang digunakan untuk mewakili ralat dan situasi tidak normal. Dalam ujian unit, anda boleh menggunakan blok try-catch
untuk menangkap pengecualian yang dilemparkan oleh fungsi. try-catch
块来捕获函数抛出的异常。
@Test public void testDivideByZero() { try { int result = divide(10, 0); fail("Expected ArithmeticException but none was thrown"); } catch (ArithmeticException e) { // 验证异常消息 assertEquals("Division by zero", e.getMessage()); } }
断言
断言允许你在测试方法中验证预期结果。如果断言失败,测试将失败。
@Test public void testToString() { Person person = new Person("John", "Doe"); String expected = "Person[firstName='John', lastName='Doe']"; assertEquals(expected, person.toString()); }
Mocks
Mocks 是模拟其他类或接口的行为的测试工具。它们允许你隔离测试中的依赖项,从而更容易测试函数的逻辑。
@ExtendWith(MockitoExtension.class) public class ServiceTest { @Mock private Repository repository; @Test public void testFindById() { when(repository.findById(1)).thenReturn(new Person("John", "Doe")); Person person = service.findById(1); assertEquals("John", person.getFirstName()); } }
实际案例
考虑以下函数,它从一组数字中寻找最大值。
public static int findMax(int[] numbers) { if (numbers == null || numbers.length == 0) { throw new IllegalArgumentException("Invalid input array"); } int max = numbers[0]; for (int i = 1; i < numbers.length; i++) { if (numbers[i] > max) { max = numbers[i]; } } return max; }
错误检测和预防
IllegalArgumentException
。Arrays
@Test public void testFindMax() { int[] numbers = {1, 2, 3, 4, 5}; int expected = 5; int result = findMax(numbers); assertEquals(expected, result); }
IllegalArgumentException
apabila menerima input tidak sah. 🎜Atas ialah kandungan terperinci Pengesanan ralat dan pencegahan dalam ujian unit fungsi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!