0
我們必須用jUnit測試我們的JavaEEServer。出於這個原因,我們想測試我們的REST get方法。我們用Jersey框架實現了這些方法。出於這個原因,這些方法返回類型爲java.ws.rs.core.Response的響應。將java.ws.rs.core.Response轉換爲JSON以進行jUnit測試
如何將這些響應轉換爲JSON,當我們想從服務器端進行測試時,只需要直接調用方法?
例子:
@GET
@Path("getallemployees")
@Produces("application/json")
public Response getAllEmployees() {
//here we create a generic entity (this works)
return Response.ok(entity).build();
}
我們需要測試什麼:
@Test
public void testgetAllEmployees() {
// here we initialize the mocked database content (Mockito)
Response test = employeeResource.getAllEmployees();
// here we want to have the Response as JSON
}
謝謝!
'test.getEntity()'給你什麼? – Thilo
我們從EmployeeResource類型(我們的getMethod所在的位置)中獲得一個對象,並且我們有一個ArrayList,其中包含我們想要的JSON字符串中的內容,但是我們無法獲取此JSON字符串。如果我們做'test.getEntity()。toString()',那麼我們得到:'com.ourcompany.restserver.EmployeeResource $ 1 @ 788ab708' – tralala
只是一個快速的建議:getAllEmployees返回特定的EmployeesEntity而不是響應。在這種情況下,它將清楚應該預期什麼樣的響應(與通用響應相對),並且代碼將更加簡潔(返回新的EmployeesEntity(employeesList))。 – Jonas