Application of error detection and prevention in Java function unit testing: Exception handling: Verify whether the function throws an exception when receiving invalid input. Assertion: Verify that the function returns the expected result. Mocks: Isolate dependencies in testing and simplify functional logic testing.
Error Detection and Prevention in Java Function Unit Testing
In software development, unit testing is the verification of a single function or method Important practices that work as expected. Error detection and prevention are critical to ensuring code quality. This article explores techniques for implementing error detection and prevention in Java function unit testing.
Exception handling
Exceptions in Java are mechanisms used to represent errors and abnormal conditions. In unit tests, you can use try-catch
blocks to catch exceptions thrown by functions.
@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()); } }
Assertions
Assertions allow you to verify expected results in test methods. If the assertion fails, the test will fail.
@Test public void testToString() { Person person = new Person("John", "Doe"); String expected = "Person[firstName='John', lastName='Doe']"; assertEquals(expected, person.toString()); }
Mocks
Mocks are testing tools that simulate the behavior of other classes or interfaces. They allow you to isolate dependencies within your tests, making it easier to test a function's logic.
@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()); } }
Actual Example
Consider the following function, which finds the maximum value from a set of numbers.
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; }
Error detection and prevention
IllegalArgumentException# when receiving invalid input ##.
classes in test logic.
@Test public void testFindMax() { int[] numbers = {1, 2, 3, 4, 5}; int expected = 5; int result = findMax(numbers); assertEquals(expected, result); }
The above is the detailed content of Error detection and prevention in Java function unit testing. For more information, please follow other related articles on the PHP Chinese website!