es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo simular múltiples entradas de usuario para JUnit4

“No tengo funciones de entrada de usuario múltiples, ¿es posible formar una lista de las entradas de usuario y recoger la entrada correspondiente cuando sea necesario?

@Test
public void test1() {

String simulatedUserInput = "1\n"+"2\n"+"3\n" ;

InputStream savedStandardInputStream = System.in;
System.setIn(new ByteArrayInputStream(simulatedUserInput.getBytes()));

// código que necesita múltiples entradas de usuario

System.setIn(savedStandardInputStream);


ByteArrayOutputStream out = new ByteArrayOutputStream(); 
System.setOut(new PrintStream(out));

String[] args = {} ;
Demo.main(args);

String consoleOutPutString ="Ingrese el lado 1: "+ System.getProperty("line.separator")+"1"+ System.getProperty("line.separator"); 
       consoleOutPutString +="Ingrese el lado 2: "+ System.getProperty("line.separator")+"2"+ System.getProperty("line.separator"); 
       consoleOutPutString +="Ingrese el lado 3: "+ System.getProperty("line.separator")+"3"+ System.getProperty("line.separator"); 
       consoleOutPutString +="Esto no es un triángulo."+ System.getProperty("line.separator"); 

assertEquals(consoleOutPutString, out.toString());

}

}”

“este código no funciona”

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sin duda es posible formar una lista de entradas de usuario y hacer que el programa recoja la entrada correspondiente cuando llegue el momento. Una forma de hacer esto es utilizando un array o una lista para almacenar las entradas de usuario, y luego acceder a los elementos del array o lista según sea necesario.

    Por ejemplo, en el caso de prueba mostrado, las entradas de usuario “1”, “2” y “3” se almacenan en la variable simulatedUserInput como una sola cadena, separada por saltos de línea. Esta cadena luego se pasa a un objeto ByteArrayInputStream, que simula la entrada de usuario cuando se lee por el programa.

    Sin embargo, parece que el código en este caso de prueba puede no estar escrito correctamente, como indica el mensaje de error mostrado en la captura de pantalla. Sin más contexto, es difícil identificar el problema específico, pero puede estar relacionado con cómo el programa procesa la entrada de usuario o cómo interactúa con la consola.

Comments are closed.