任何人都可以给出一个建议如何使when(bufferedReader.readLine()).thenReturn(line);
调用一次? 因为我在所有行中都有一个while循环,我只想测试单行。BufferedReader模拟。 readLine()只需要调用一次
-1
A
回答
2
thenReturn如果要更改后续调用的返回值,则需要可变参数。
when(bufferedReader.readLine()).thenReturn(line, null);
这将导致它第一次返回行,每次后都返回null。
编辑: 请注意,您还可以执行以下操作来得到相同的结果:
when(bufferedReader.readLine()).thenReturn(line).thenReturn(null);
0
恕我直言,这是更好地使用一个真实的,但简单的BufferedReader
,而不是为你的测试存根。
BufferedReader reader = new BufferedReader(
new StringReader(line)
);
BufferedReader的合同很复杂。因此,如果更改了代码的内部结构(例如,读取单个字符而不是行),那么使用存根测试可能会失败,但代码仍然正确。
相关问题
- 1. BufferedReader readLine每隔一行跳过一次
- 2. BufferedReader readline
- 3. BufferedReader readLine()blocks
- 4. Java + readline与BufferedReader
- 5. Java BufferedReader只读取一次
- 6. 只需调用WebServcie一次?
- 7. 只模拟一次方法
- 8. 插槽:BufferedReader readLine()块
- 9. BufferedReader readLine和OutputStreamWriter .write
- 10. Java BufferedReader readline阻塞?
- 11. java bufferedreader,声明readline
- 12. Titanium“addEventListener”被多次调用,但我只需要它一次
- 13. 用户表只需要一次
- 14. 模拟:when()需要参数必须是'模拟方法调用'
- 15. Laravel 5用户定义的设置只需要调用一次
- 16. 第一次使用这个模拟器需要多长时间?
- 17. 的BufferedReader的ReadLine在一个线程
- 18. 套接字:BufferedReader类的readLine()
- 19. bufferedreader readline如何工作?
- 20. 优化BufferedReader readLine()操作
- 21. 如何停止BufferedReader readline()?
- 22. 如何根据需要只调用一次该函数?
- 23. 您是否只需要为TimeZone和Locale调用setDefault()一次?
- 24. python imaplib:我只需要调用.close()一次吗?
- 25. 如何模拟BufferedReader和Pattern.compile?
- 26. 只需调用一次JavaScript函数而不是每次调用
- 27. 如何重置BufferedReader(或InputStreamReader)以使用readline()两次?
- 28. PHPUnit模拟方法调用0次,而应该调用一次
- 29. 嘲笑&单元测试 - 为什么要检查一次只被调用一次?
- 30. 的BufferedReader的readLine使用while循环
你问的是如何使它返回一次,然后null?你还可以发布你迄今为止的代码吗? –