Maison > Java > javaDidacticiel > le corps du texte

Comment simuler la saisie utilisateur dans les tests JUnit pour les programmes de ligne de commande ?

Mary-Kate Olsen
Libérer: 2024-10-28 14:41:02
original
298 Les gens l'ont consulté

How Can You Simulate User Input in JUnit Tests for Command-Line Programs?

Simulation des tests System.in avec JUnit

Dans le domaine des tests logiciels, on est souvent confronté au défi de simuler les entrées des utilisateurs lorsqu'il s'agit de programmes en ligne de commande. Lorsqu'un programme demande une entrée via System.in, comment automatiser ce comportement dans les tests JUnit ?

Solution

Pour contourner System.in et injecter une entrée utilisateur simulée , suivez ces étapes :

  1. Établissez une couche d'abstraction :
    Évitez d'appeler directement System.in dans votre code. Introduisez une couche d’abstraction pour gérer la source d’entrée. Vous pouvez y parvenir via l'injection de dépendances ou en passant un contexte d'E/S.
  2. Changez System.in de manière dynamique :
    Utilisez les flux Java 8 pour manipuler le System.in flux. Par exemple :

    <code class="java">String data = "Hello, World!\r\n";
    InputStream stdin = System.in;
    try {
        System.setIn(new ByteArrayInputStream(data.getBytes()));
        Scanner scanner = new Scanner(System.in);
        System.out.println(scanner.nextLine());
    } finally {
        System.setIn(stdin);
    }</code>
    Copier après la connexion

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!