让我们说我有一个像这样的方法
static void forLoop(){
for (int j = 0; j < 10; j++) {
System.out.println(j);
}
}
如果我要编写一个单元测试来检查for循环是否运行了10次。可以这样做吗?
在一次采访中有人问我这个问题。
答案 0 :(得分:2)
您可以使用System.setOut
将输出重定向到其他PrintStream
(例如ByteArrayOutputStream),调用该方法,然后检查PrintStream
的内容。
那么,正如@Andy Turner在评论中指出的那样,您需要确保测试不会彼此并行运行,也不会与可能写入System.out
的任何其他事物并行运行。
(我认为这是一个糟糕面试问题。)