Lorsque vous testez la gestion des exceptions en Java, vous pouvez utiliser plusieurs méthodes : affirmer qu'une exception est levée (en utilisant assertThrows()), attendre une exception (utiliser Expect()), vérifier le message d'exception (utiliser assertThat()). Grâce à ces méthodes, la gestion des exceptions peut être entièrement testée pour garantir l'exactitude et la fiabilité du code. Par exemple, pour tester l'exception levée lorsque le nom d'utilisateur est nul, vous pouvez utiliser la méthode assertThrows() pour vérifier qu'elle se comporte comme prévu.
Comment utiliser les tests unitaires pour tester la gestion des exceptions Java
Les tests unitaires sont essentiels pour garantir l'exactitude et la fiabilité du code, y compris les tests de gestion des exceptions. En Java, vous pouvez utiliser diverses méthodes pour tester la gestion des exceptions, notamment :
1 Affirmer qu'une exception est levée
Vous pouvez utiliser la méthode assertThrows()
pour affirmer qu'une exception est levée. La méthode lèvera une exception lorsqu'elle sera appelée. Lance une exception spécifique : assertThrows()
方法来断言一个方法在调用时会抛出特定的异常:
import static org.junit.jupiter.api.Assertions.*; class UserService { public void deleteUser(String username) { if (username == null) { throw new IllegalArgumentException("Username cannot be null"); } } } public class UserServiceTest { @Test public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentException() { UserService userService = new UserService(); assertThrows(IllegalArgumentException.class, () -> userService.deleteUser(null)); } }
2. 预期异常
你还可以使用expected()
注解来自定义异常信息:
import org.junit.jupiter.api.Test; class UserService { public void deleteUser(String username) { if (username == null) { throw new IllegalArgumentException("Username cannot be null"); } } } public class UserServiceTest { @Test(expected = IllegalArgumentException.class) public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentException() { UserService userService = new UserService(); userService.deleteUser(null); } }
3. 验证异常消息
要验证抛出的异常具有特定的消息,你可以使用assertThat()
方法:
import org.hamcrest.CoreMatchers; import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.*; import org.junit.jupiter.api.Test; class UserService { public void deleteUser(String username) { if (username == null) { throw new IllegalArgumentException("Username cannot be null"); } } } public class UserServiceTest { @Test public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentExceptionWithMessage() { UserService userService = new UserService(); try { userService.deleteUser(null); fail("Expected an IllegalArgumentException to be thrown"); } catch (IllegalArgumentException e) { assertThat(e.getMessage(), is("Username cannot be null")); } } }
实践案例
例如,考虑一个 UserService
类,它有一个方法 deleteUser()
import static org.junit.jupiter.api.Assertions.*; class UserServiceTest { @Test public void deleteUser_whenUsernameIsNull_throwsIllegalArgumentException() { UserService userService = new UserService(); assertThrows(IllegalArgumentException.class, () -> userService.deleteUser(null)); } }
2. Exception attendue
🎜🎜Vous pouvez également utiliser l'annotationexpected()
pour personnaliser le message d'exception : 🎜rrreee🎜🎜. 3. Vérifiez le message d'exception🎜🎜🎜Pour vérifier que l'exception levée a un message spécifique, vous pouvez utiliser la méthode assertThat()
: 🎜rrreee🎜🎜Exemple pratique🎜🎜🎜Par exemple, considérez une classe UserService
qui a une méthode deleteUser()
pour supprimer un utilisateur. Pour tester l'exception levée lorsque le nom d'utilisateur est nul, nous pouvons utiliser la méthode d'exception levée par Assert : 🎜rrreee🎜 En utilisant ces méthodes, vous pouvez tester de manière exhaustive tous les aspects de la gestion des exceptions dans votre application Java pour vous assurer que son comportement est le même. attendu. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!