2011-11-17 54 views
1

我目前使用Spring MVC的HandlerAdapter來測試我的Spring控制器動作的註釋,以確保路徑變量,請求參數,會話屬性,@Valid等被正確寫入。如何在Spring MVC框架中使用HandlerAdapter來測試@ResponseBody控制器操作?

我碰到過一個問題,如果一個控制器動作有@ResponseBody而且沒有返回ModelAndView,我不能使用HandlerAdapter來測試響應。

我發現在這個網站上相關的一個問題,但考慮到接受的答案不盡如人意:

How to unit test a ResponseBody or ResponseEntity sent by a spring mvc Controller?

如何測試在同一時間的批註和結果?或者我需要編寫兩個測試 - 一個測試註釋,另一個直接調用控制器方法?

感謝

回答

1

如果你有一個@ResponseBody,則處理程序應該不會返回ModelAndView,就應該直接寫入使用MessageConvert響應。

一種方法是攔截Response並讀取它而不是讀取返回的值。

+0

請您詳細說明一下嗎?我在使用HandlerAdapter的'@ RequestBody'和'@ ResponseBody'方面遇到了一些困難。我希望能夠測試這些註釋,以及我已經可以使用HandlerAdapter測試的註釋。 – egervari

0

請看看this答案,我只是發現你同樣的問題,我有:

我發現非常有用,我執行我的測試代碼這個解決方案。

相關問題