A控制器包括兩個主要部分:設計花樣來測試RESTful服務
- 映射的URL
- 代碼裏面方法
當編寫一個測試案例有兩個部分進行測試。
- 測試的URL和映射
- 測試函數內部的代碼映射
後,採用經典的測試情況下,使用HttpServletResponse的模擬等,採用RESTtemplates(而不是使用curl)是相當大的東西使用。
問題是:使用哪一個,如何使用它們,如何合併它們,是否需要在邏輯上區分兩個測試部件?
什麼樣的模式用於測試RESTful服務。
A控制器包括兩個主要部分:設計花樣來測試RESTful服務
當編寫一個測試案例有兩個部分進行測試。
後,採用經典的測試情況下,使用HttpServletResponse的模擬等,採用RESTtemplates(而不是使用curl)是相當大的東西使用。
問題是:使用哪一個,如何使用它們,如何合併它們,是否需要在邏輯上區分兩個測試部件?
什麼樣的模式用於測試RESTful服務。
首先:
所以,當我寫的測試中,我試着寫他們儘可能地簡單,但也嘗試測試我相信,我可以去錯了每一件事情。
因此,例如,您的REST類型的服務:
當然也有可能是在邏輯許多錯誤,所以一個需要寫很多他們的測試。但是這個測試可以直接調用該方法,並使其相對容易編寫測試。通過一些HTTP調用來調用方法的更簡單。
但是當然在HTTP調用中可能會出現錯誤,因此必須進行測試。但是因爲我已經用我的正常單元測試測試了「代碼」。我只需要很少那麼難編寫測試。這個測試更關注可以通過錯誤的映射或錯誤的服務來完成的錯誤。
所以在最後:使用所有類型的,你可以寫測試(單元測試,嘲笑的東西,HttpUnit的測試,硒,...)。但首先想想你想測試的問題。並且選擇那種可以編寫和維護測試用例的測試。
順便說一句@see RestFuse - JUnit擴展
感謝您的答案和投票了。當我編寫測試代碼時,是否應該將我在問題中解釋的兩種測試分開?我的意思是在不同的班級以不同的方式。我只是想要有一個好的設計模式。 – kamaci
@kamaci:是的,你應該在單獨的類中做(也可以在不同的根源目錄中)。不同類的原因是,這兩種類型通常需要完全不同的測試設置和不同的測試運行器。不同根目錄的原因是,這允許你(如果你使用eclipse)分別運行每種類型。這可能很重要,因爲您通常只想在開發過程中運行快速測試(實際單元和模擬測試)。並且如果每件事都完成,只想運行所有測試(快速和慢速)一次。 – Ralph
謝謝,這對測試REST架構代碼來說是一個很好的頭腦。 – kamaci