【问题标题】:Unit test loop has run for particular number of times单元测试循环已运行特定次数
【发布时间】:2019-10-13 06:18:02
【问题描述】:

假设我有一个看起来像这样的方法

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

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

我在一次采访中被问到这个问题。

【问题讨论】:

    标签: java unit-testing testing junit


    【解决方案1】:

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

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

    (我认为这是一个可怕的面试问题。)

    【讨论】:

    • 这很好。+1。
    • 但值得一提的是,通过替换System.out,您必须注意确保您的测试不会并行运行,因为这可能会导致测试因干扰而失败案件之间。另外:“我认为这是一个糟糕的面试问题”^^ 那。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2011-08-16
    相关资源
    最近更新 更多