【发布时间】:2014-08-05 02:57:36
【问题描述】:
如何使用 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
谢谢
【问题讨论】:
-
嗯...在
input变量中有多行有什么问题?例如val input = "foo\nbar\n"
标签: scala unit-testing scalatest