"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você pode simular a entrada do usuário em testes JUnit para programas de linha de comando?

Como você pode simular a entrada do usuário em testes JUnit para programas de linha de comando?

Publicado em 23/11/2024
Navegar:835

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

Simulando testes de System.in com JUnit

No domínio dos testes de software, muitas vezes enfrentamos o desafio de simular a entrada do usuário ao lidar com programas de linha de comando. Quando um programa solicita entrada via System.in, como automatizar esse comportamento em testes JUnit?

Solução

Para ignorar System.in e injetar entrada simulada do usuário , siga estas etapas:

  1. Estabeleça uma camada de abstração:
    Evite chamar System.in diretamente em seu código. Introduza uma camada de abstração para gerenciar a fonte de entrada. Você pode conseguir isso por meio de injeção de dependência ou passando um contexto de E/S.
  2. Alternar System.in dinamicamente:
    Use fluxos Java 8 para manipular o System.in fluxo. Por exemplo:

    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);
    }
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3