我將單元測試一個Spring MVC控制器(如果可能的話)或整個站點。Spring MVC單元測試 - 我可以傳遞URL(帶參數)給控制器嗎?
我想傳遞一個URL(字符串),例如「/度量/過濾器?A1 = 1 & A2 = 2 & A3 = ABCDEFG & wrongParam = WRONG」 和檢查什麼控制器將返回。
有沒有簡單的方法來做到這一點?
例子:
@RequestMapping(value = {"/filter"}, method = RequestMethod.GET)
@ResponseBody
public List<MetricType> getMetricTypes(
@RequestParam(value = "subject", required = false) Long subjectId
,@RequestParam(value = "area", required = false) Long areaId
,@RequestParam(value = "onlyImmediateChildren", required = false) Boolean onlyImmediateChildren
,@RequestParam(value = "componentGroup", required = false) Long componentGroupId
,@RequestParam(value = "hasComponentGroups", required = false) Boolean hasComponentGroups
) throws Exception
{
//some code
}
非常感謝
馬克西姆
修訂
- 我只使用GET,不得發佈
- 我不使用模型對象(見例以上)
- 我的系統是具有大量的web服務「/ someEntity /過濾?A1 = 123 & A2 = 1234 & A3 =等」方法用的參數的各種組合。我不確定在這種情況下使用模型對象是否可行。
看起來很有趣。很抱歉在Spring MVC中成爲新手,但是如何獲取/創建請求和響應對象?我將你的代碼粘貼到IDE並且不能編譯。 – 2012-04-04 11:32:51
我已經初始化了請求和響應,如下所示:「MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse();」。現在我無法運行測試 - 它會因NullPointerException而失敗。 – 2012-04-04 12:09:25
我更新了代碼,請參閱設置方法 – 2012-04-04 13:31:56