1
JUnitテストケースを使用して、EclipseでREST Webサービスをテストする必要があります。どうすればいいですか?通常のJavaクラスのテストケースと似ていますか?WebサービスのJUnitテストケース
サービス:
@Path("/regionService")
public class RegionService {
@GET
@Path("getRegions")
@Produces(MediaType.APPLICATION_JSON)
public String getRegions(@QueryParam("parentTenancyID") int parentTenancyID) throws CustomFault{
String result = null;
RegionServiceImpl implObj = new RegionServiceImpl();
if(parentTenancyID!=0){
try{
result = implObj.getRegionServiceDetails(parentTenancyID);
}catch(Exception e){
e.printStackTrace();
}
}
return result;
}
}
実装:
public class RegionServiceImpl {
@SuppressWarnings({ "rawtypes", "unchecked" })
public String getRegionServiceDetails(int parentTenancyID) {
String result = null;
Logger fLogger = FatalLoggerClass.logger;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
String regionQ = "select a.tenancy_id, a.tenancy_name from TenancyEntity a where Parent_Tenancy_ID=" +parentTenancyID+" ";
Query query = session.createQuery(regionQ);
try{
Iterator iterator = query.list().iterator();
Object[] resultQ = null;
HashMap<Integer,String> regionMap = new HashMap<Integer,String>();
JSONObject jsonObj = null;
JSONArray jsonArray = new JSONArray();
jsonObj = new JSONObject();
while(iterator.hasNext()){
resultQ = (Object[]) iterator.next();
int tenancyId = (Integer) resultQ[0];
String TenancyName = (String) resultQ[1];
regionMap.put(tenancyId, TenancyName);
}
jsonObj.putAll(regionMap);
jsonArray.add(jsonObj);
result = jsonArray.toString();
}catch(Exception e){
fLogger.fatal("Exception :"+e);
}finally{
if(session.getTransaction().isActive()){
session.getTransaction().commit();
}if(session.isOpen()){
session.flush();
session.close();
}
}
return result;
}
}
私はサービスからJSONレスポンスが期待値と同じになりますかどうかを確認したいです。それは次のドキュメントを参照してください ため
が表示されますか? – Jobin
https://github.com/rest-assured/rest-assuredをご覧ください –