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); }
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()); }
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!