Maison > Java > javaDidacticiel > Comment tester la sortie de la console dans JUnit ?

Comment tester la sortie de la console dans JUnit ?

Mary-Kate Olsen
Libérer: 2024-12-22 07:02:30
original
509 Les gens l'ont consulté

How to Test Console Output in JUnit?

Test de la sortie de la console dans JUnit

Lorsque vous testez des applications existantes avec une mauvaise conception, vous pouvez rencontrer du code qui écrit des messages d'erreur sur la sortie standard. Pour affirmer une telle sortie de console dans JUnit, vous avez besoin d'un moyen de rediriger et de capturer la sortie.

Redirection de la sortie de la console

Le système Java peut être configuré pour envoyer la sortie de la console à des flux spécifiés. Nous pouvons exploiter ce mécanisme pour capturer et tester la sortie.

Capturer la sortie avec ByteArrayOutputStream

Un ByteArrayOutputStream peut être utilisé pour capturer la sortie de la console. Pour ce faire, nous remplaçons les flux de sortie standard par de nouveaux flux qui écrivent dans ByteArrayOutputStream.

Exemple :

private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;

@Before
public void setUpStreams() {
    System.setOut(new PrintStream(outContent));
    System.setErr(new PrintStream(errContent));
}

@After
public void restoreStreams() {
    System.setOut(originalOut);
    System.setErr(originalErr);
}
Copier après la connexion

Test de la sortie de la console

Une fois la sortie capturée, nous pouvons affirmer son contenu à l'aide de JUnit Méthode assertEquals().

Exemples de cas de test :

@Test
public void out() {
    System.out.print("hello");
    assertEquals("hello", outContent.toString());
}

@Test
public void err() {
    System.err.print("hello again");
    assertEquals("hello again", errContent.toString());
}
Copier après la connexion

Conclusion

En redirigeant la sortie de la console vers ByteArrayOutputStreams et en utilisant System.setXXX() pour configurer les flux système, vous pouvez tester et affirmer efficacement la sortie de la console dans votre JUnit tests.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal