任何人都可以給出一個建議如何使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?你還可以發佈你迄今爲止的代碼嗎? –