BufferedReader mock。 readLine()只需要调用一次

时间:2017-04-04 16:22:48

标签: java junit mockito

任何人都可以提出如何制作when(bufferedReader.readLine()).thenReturn(line);的建议 只打一次电话? 因为我在所有行中都有一个while循环,而我只想测试单行。

2 个答案:

答案 0 :(得分:2)

如果您想更改后续调用的返回值,则返回varargs。

cmake CMakeLists.txt -DCMAKE_CXX_COMPILER:STRING=/usr/bin/clang++
make

这将导致它第一次返回行,并且每次都返回null。

编辑: 请注意,您还可以执行以下操作以获得相同的结果:

when(bufferedReader.readLine()).thenReturn(line, null);

答案 1 :(得分:0)

恕我直言,最好使用真实但简单的BufferedReader而不是存根进行测试。

BufferedReader reader = new BufferedReader(
    new StringReader(line)
);

BufferedReader的合同很复杂。因此,如果您更改代码的内部(例如,读取单个字符而不是行),则使用存根进行测试可能会失败,尽管代码仍然正确。