我有Struts 1操作並希望單獨對其進行測試。 什麼這個動作做如下:使用參數從請求使用模擬對象時測試粒度
- 負載數據這個數據的
- 構建基於XML的表示
- 直接發送該響應給客戶機
我使用jMock進行測試,但在這裏有一個疑問。 我的第一個測試是評估以這種
public void shouldActionInvocationPrintValidResponse() {
ProcessingAction action = new ProcessingAction();
DBService service = mock(DBService.class);
List records = new ArrayList();
when(service.loadData()).thenReturn(records);
ResponseBuilder builder = mock(ResponseBuilder.class);
when(builder.buildResponse(records)).thenReturn("fake response");
action.execute(null, null, null, null);
assertEquals("fake response", writer.getContentWritten());
}
我的督促代碼:
public String execute(...) {
List recordsList = service.loadData();
String response = responseBuilder.buildResponse(recordsList);
response.getWriter().print(response);
}
我在這裏的疑問是,如果這樣的測試是不是太大這裏。我在這裏檢查整個成功的流程。不應該有單獨的測試來檢查他們自己的測試中的每個依賴項調用嗎?
我在想,因爲我在這個測試的名字上遇到了麻煩。我一開始的想法是像
shouldFetchDataThenFormatThemAndSendResponse
由於這是所有測試呢,這個名字表明它可能不會太多(看在「和」如測試名稱)
,並應我一次寫完整個測試,或者只是逐步添加依賴關係調用?編號: 提供測試和操作的詳細代碼。
這行代碼無法編譯:`response.getWriter()。print(response);`好像作家也應該被嘲笑。 – 2011-12-15 15:57:49