Maison > Java > javaDidacticiel > Comment JUnit peut-il tester efficacement la sortie « System.out.println() » ?

Comment JUnit peut-il tester efficacement la sortie « System.out.println() » ?

Linda Hamilton
Libérer: 2024-12-28 16:17:54
original
177 Les gens l'ont consulté

How Can JUnit Effectively Test `System.out.println()` Output?

Test JUnit pour la sortie System.out.println()

Dans les applications existantes, le dépannage peut être difficile lorsqu'on s'appuie uniquement sur les messages d'erreur standard imprimé sur la console. Pour atténuer ce problème, JUnit fournit des méthodes pour capturer et affirmer la sortie de la console.

Pour tester la sortie System.out.println(), envisagez l'approche suivante :

  1. Initialiser Output Capture :

    • Créer des objets ByteArrayOutputStream (par exemple, outContent et errContent) pour stocker les flux de sortie et d'erreur.
    • Utilisez System.setOut(new PrintStream(outContent)) et System.setErr(new PrintStream(errContent)) pour rediriger les flux de console vers ces objets.
  2. Exécuter Tests :

    • Appelez System.out.println(output) ou System.out.print(output) dans la méthode de test pour capturer la sortie prévue.
  3. Sortie d'affirmation :

    • Utilisez le Méthode assertEquals(expected, actual) pour comparer la sortie capturée (outContent ou errContent) avec la sortie attendue.

Exemples de cas de test :

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

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

Remarque : Assurez-vous que les appels System.setOut() et System.setErr() sont annulés après chaque test en utilisant originalOut et originalErr. Ne pas le faire peut entraîner des NullPointerExceptions lors des tests ultérieurs.

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