Maison > Java > javaDidacticiel > le corps du texte

Comment utiliser les tests unitaires pour tester la gestion des exceptions Java ?

WBOY
Libérer: 2024-04-12 10:36:02
original
597 Les gens l'ont consulté

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 ?

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));
    }
}
Copier après la connexion

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);
    }
}
Copier après la connexion

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"));
        }
    }
}
Copier après la connexion

实践案例

例如,考虑一个 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));
    }
}
Copier après la connexion

2. Exception attendue

🎜🎜Vous pouvez également utiliser l'annotation expected() 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal