をシミュレート:私は(私は質問の目的のために簡略化されました)次のコードを持っているユーザープロンプトを作成し、相互作用
def openFile(directory: File): Try[String] = {
var input = ""
do {
input = readLine("prompt>")
println("alibaba.txt: 100%")
} while(input != ":quit")
}
ワークフローはこれです:
ユーザーがプロンプトを取得します。
prompt>
ユーザーがalibaba
書き込み、その後、プレスは
ユーザーが見ている:
はalibaba.txt: 100%
prompt>
すべて:
prompt>alibaba
alibaba.txt: 100%
prompt>
は今、私はそれをテストしたいです。
私は、ユーザーとの対話をテストするには、以下のコードを書いた:
test("simulate user input from readline") {
val prompt = new Prompt()
prompt.openFile(new File("../resources"))
val in = new ByteArrayInputStream("alibaba\n".getBytes)
System.setIn(in)
val scanner: Scanner = new Scanner(System.in)
val programResponse: String = scanner.nextLine()
println("programResponse: " + programResponse)
System.setIn(System.in)
assert(programResponse == "alibaba.txt: 100%")
}
しかし、私はこの結果を得ていると私は混乱している:
"alibaba[]" did not equal "alibaba[.txt: 100%]"
は、どのように私は、テストを行うことができますユーザーとのやり取りをシミュレートしますか?
私のプログラムが書いたものをどのように読むことができますか?
万が一、あなたが答えを受け入れるだろうか? – tkachuko