gpt4 book ai didi

scala - 我如何在 Scala 中对控制台输入进行单元测试?

转载 作者:行者123 更新时间:2023-12-05 04:16:59 32 4
gpt4 key购买 nike

我如何使用 scalaTest 在 scala 中对控制台输入进行单元测试。被测代码:

object ConsoleAction {
def readInput(in: InputStream): List[String] = {
val bs = new BufferedSource(in)(Codec.default)
val l = bs.getLines()
l.takeWhile(_!="").toList
}

def main(args: Array[String]) {
val l = ConsoleAction.readInput(System.in)
println("--> "+l)
}
}

我想测试 readInput 方法。一行输入可以这样测试:

"Result list" should "has 1 element" in {
val input = "Hello\\n"
val is = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8))
assert(ConsoleAction.readInput(is).size===1)
}

...但是多行输入的方式是什么?

input line 1
input line 2

谢谢

最佳答案

您的问题在于您如何转义换行符。你在做“\\n”而不是“\n”。这个测试应该通过。

"Result list" should "has 2 elements" in {
val input = "Hello\nWorld\n"
val is = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8))
assert(ConsoleAction.readInput(is).size===2)
}

关于scala - 我如何在 Scala 中对控制台输入进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124691/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com