我可以使用Mockito捕獲傳遞給HttpServletResponse#sendError()
方法的內容嗎?我無法弄清楚如何做到這一點。Mockito:捕獲HttpServletResponse#sendError()
1
A
回答
4
您應該使用Mockito上的驗證方法來執行此操作。通常嘲笑HttpResponse雖然不是一個愉快的經歷。
mockResponse = mock(HttpSR→);
//…
verify(mockResponse, times(1)).sendError(..);
作爲參數傳遞給sendError
然後你可以通過匹配器的Mockito,它可以做你所需要的參數中的任何檢查。
0
你可能想看看Mockito spies(第13章)。對於你不能嘲笑的對象,你有時可以檢查它們的內部結構,並用這種方法來存儲某些方法。
如果你可以發佈一些示例代碼,我可以看看它。
1
我想海報想知道,如何檢索傳遞給方法的參數。你可以使用:
// given
HttpServletResponse response = mock(HttpServletResponse.class);
ArgumentCaptor<Integer> intArg = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<String> stringArg = ArgumentCaptor.forClass(String.class);
doNothing().when(response).sendError(intArg.capture(), stringArg.capture());
// when (do your test here)
response.sendError(404, "Not found");
// then (do your assertions here, I just print out the values)
System.out.println(intArg.getValue());
System.err.println(stringArg.getValue());
相關問題
- 1. HttpServletResponse#sendError如何更改ContentType
- 2. Spring異常處理 - @ControllerAdvice無法處理HttpServletResponse#sendError()
- 3. 如何使用Mockito模擬HttpServletRequest和HttpServletResponse
- 4. 使用mockito捕獲器捕獲發送給方法的參數
- 5. python mockito自變量捕獲器
- 6. 在Mockito中捕獲一個參數
- 7. 確認異常被Mockito和PowerMock捕獲
- 8. Mockito。沒有捕獲任何參數值
- 9. 使用SpringFramework測試和Mockito HttpServletResponse響應上的空指針
- 10. 從liferay門戶獲得HttpServletResponse
- 11. 使用mockito捕獲javafx更改事件會拋出IllegalStateException
- 12. 的Mockito:驗證所捕獲的對象的方法被調用
- 13. 如何在Openxava中獲得HttpServletResponse對象
- 14. 通過HttpServletResponse/HttpServletRequest獲取HTML內容
- 15. 如何在FreeMarker中獲取HttpServletRequest和HttpServletResponse?
- 16. 使用HttpServletResponse的
- 17. HttpServletResponse XML到Java
- 18. HttpServletResponse PrintWriter寫入InputStream
- 19. HttpServletResponse編碼問題
- 20. Java + unicode + HttpServletResponse =失敗
- 21. 如何從sendError映射錯誤:在RACSignal
- 22. 在xhtml頁面上顯示sendError消息
- 23. Java&Mockito - 將一個參數傳遞給一個方法並捕獲結果
- 24. 使用mockito測試引發未被捕獲的自定義異常的方法
- 25. mockito:有沒有一種方法來捕獲stubbed方法的返回值?
- 26. 如何用Mockito測試捕獲異常並返回false的代碼
- 27. 如何序列化HttpServletRequest/HttpServletResponse?
- 28. Jetty HttpServletResponse無法修改
- 29. Zero Copy byte []或ByteBuffer with HttpServletResponse
- 30. HttpServletResponse四捨五入setDateHeader
在這種情況下,我沒有一個真正的對象。我在做:模擬(HttpServletResponse.class)。在代碼中它調用sendError()方法。也許我只需要爲HttpServletResponse創建自己的模擬實現。我希望Mockito有一個存儲任何時間sendError()被調用,所以我可以稍後檢索結果。 – Dave 2010-06-11 20:39:52
看着間諜文檔告訴我這是多麼簡單: verify(res).sendError(404); 謝謝。 – Dave 2010-06-11 20:48:27
沒問題。我最近一直在和Mockito搏鬥。這是驚人的,除非不是。 – Andy 2010-06-11 21:12:40