0

実行する前にユーザーの入力を待つ必要がある JUnit テストを作成しています。シナリオは次のようなものです。

  • テストの実行を開始する
  • 自動化/モック化できない外部操作が完了するまで待ちます。ユーザーはいくつかの手動アクティビティを実行してから、テストを続行するように通知する必要があります
  • 走り続ける

使ってみた

System.out.println( "Press enter to continue" );
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();
System.out.println( "Resuming..." );

System.in はテスト内でキーボードからの入力を受け入れないように見えるため、機能しません。

これが典型的/オーソドックスな単体テストではないことは承知していますが、Maven を使用してさまざまなケースをテストすると便利なので、単体テストとしてコーディングしたいと思います。

または、テストを通常の (Junit 以外の) プログラムに移動する必要がありますか?

ありがとう

4

1 に答える 1

1

ユーザー入力が必要な場合、それは実際には単体テストではありません。そのように扱わないでください。

簡単に実行できる単純なプログラムとして作成し、必要に応じてテストを実行するだけです。それをビルドに含めるのは意味がないので、別のスケジュールで実行する必要があります-ビルドごとではなく、開発プロセスに沿ったもの-1日ごと、新しい機能ごとなど.

于 2012-05-10T09:52:07.560 に答える