「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > コマンドライン プログラムの JUnit テストでユーザー入力をシミュレートするにはどうすればよいですか?

コマンドライン プログラムの JUnit テストでユーザー入力をシミュレートするにはどうすればよいですか?

2024 年 11 月 23 日に公開
ブラウズ:867

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

JUnit を使用した System.in テストのシミュレーション

ソフトウェア テストの領域では、ユーザー入力を処理するときにユーザー入力をシミュレートするという課題に直面することがよくあります。コマンドラインプログラム。プログラムが System.in 経由で入力を求めるとき、JUnit テストでこの動作を自動化するにはどうすればよいですか?

解決策

System.in をバイパスして、シミュレートされたユーザー入力を挿入するには、次の手順に従います:

  1. 抽象化レイヤーを確立します:
    直接呼び出しを避けるコード内の System.in。入力ソースを管理するために抽象化レイヤーを導入します。これは、依存関係の注入または I/O コンテキストを渡すことによって実現できます。
  2. System.in を動的に切り替える:
    Java 8 ストリームを使用して System.in を操作します。ストリーム。例:

    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);
    }
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3