单元测试循环已运行特定次数

时间:2019-10-13 06:18:02

标签: java unit-testing testing junit

让我们说我有一个像这样的方法

static void forLoop(){
    for (int j = 0; j < 10; j++) {
        System.out.println(j);
    }
}

如果我要编写一个单元测试来检查for循环是否运行了10次。可以这样做吗?

在一次采访中有人问我这个问题。

1 个答案:

答案 0 :(得分:2)

您可以使用System.setOut将输出重定向到其他PrintStream(例如ByteArrayOutputStream),调用该方法,然后检查PrintStream的内容。

那么,正如@Andy Turner在评论中指出的那样,您需要确保测试不会彼此并行运行,也不会与可能写入System.out的任何其他事物并行运行。

(我认为这是一个糟糕面试问题。)