我正在尝试编写一个将重定向stdout
主方法的测试,但似乎一旦我调用主方法,它似乎开始在另一个线程上,我无法捕获输出。这是代码:
这有效:
val baos = new ByteArrayOutputStream
val ps = new PrintStream(baos)
System.setOut(ps)
print("123")
Assert.assertEquals("123", baos.toString)
这不会:
val baos = new ByteArrayOutputStream
val ps = new PrintStream(baos)
System.setOut(ps)
GameRunner.main(_)
Assert.assertEquals("123", baos.toString)
……
object GameRunner {
def main(args: Array[String]) {
print("123")
如何print
在我的测试中接听电话?
*我也试过scala.Console.setOut
编辑
我确实注意到,GameRunner.main(_)
当我不重定向时,运行甚至不会在控制台中列出任何内容。这是什么原因造成的?