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