"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo se pueden simular la entrada del usuario en pruebas JUnit para programas de línea de comandos?

¿Cómo se pueden simular la entrada del usuario en pruebas JUnit para programas de línea de comandos?

Publicado el 2024-11-23
Navegar:278

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

Simulación de System.in Pruebas con JUnit

En el ámbito de las pruebas de software, a menudo uno se enfrenta al desafío de simular la entrada del usuario cuando se trata de programas de línea de comandos. Cuando un programa solicita entrada a través de System.in, ¿cómo se automatiza este comportamiento en las pruebas JUnit?

Solución

Para omitir System.in e inyectar entrada de usuario simulada , siga estos pasos:

  1. Establezca una capa de abstracción:
    Evite llamar directamente a System.in dentro de su código. Introduzca una capa de abstracción para gestionar la fuente de entrada. Puede lograr esto mediante la inyección de dependencia o pasando un contexto de E/S.
  2. Cambiar System.in dinámicamente:
    Utilice flujos de Java 8 para manipular System.in arroyo. Por ejemplo:

    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);
    }
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3