端末の上で実行されるアプリケーションがあります。Scala - ScalaTest:テスト中に入力をシミュレートする
このアプリケーションはScalaとSBTのみを使用しており、ScalaTestを使用してテストしています。
私はインテグレーションテストのようにすべてのコンポーネントをテストしたいと思っていますが、そのためには、ユーザーがロボットのようなものを使って標準入力から値を送信するのをシミュレートします。最も重要なのは、私がreadLine
またはreadInt
と呼ぶとき、私はテスト中にdifferentsの値を送りたいと思います。
ありがとうございます!
編集1
だから、私はこのコードをしました。これは、基本的にユーザーのオプションを表示します。たとえば、1
と3,4
を送信して新しいCellを作成し、新しいセルが実際にその位置に作成されたかどうかを確認するためにCellArrayを確認したいとします。
do {
println("Select one of the options: \n \n");
println("[1] Make a cell alive");
println("[2] Next generation");
println("[3] Halt");
print("\n \n Option: ");
option = parseOption(readLine)
}while(option == 0)
option match {
case MAKE_CELL_ALIVE => makeCellAlive
case NEXT_GENERATION => nextGeneration
case HALT => halt
}
基本的には、ハンドコーディングまたは生成された(ScalaCheckなどの)値を提供するプログラムのエッジ(readLine/readInt)のテスト実装が必要です。いくつかのコードをここにドロップすると、より詳細な情報を得ることができます。 – Ren