Java 如何测试以URL为参数的方法,该方法使用mockito生成json
我正在传递一个将获取json的服务url。我使用对象映射器将json映射到响应类。在测试用例中,如何模拟url来调用实际的服务Java 如何测试以URL为参数的方法,该方法使用mockito生成json,java,mockito,Java,Mockito,我正在传递一个将获取json的服务url。我使用对象映射器将json映射到响应类。在测试用例中,如何模拟url来调用实际的服务 public String QUOTE_SUMMARY_URL = "http://localhost:8181/omnesys_sb/quote"; @SuppressWarnings("deprecation") public Quotesummary getQuoteSummary(final String urlString) throws JsonParse
public String QUOTE_SUMMARY_URL = "http://localhost:8181/omnesys_sb/quote";
@SuppressWarnings("deprecation")
public Quotesummary getQuoteSummary(final String urlString) throws JsonParseException, JsonMappingException, IOException {
String line, jsonString = null;
HttpURLConnection httpURLConnection = null;
ObjectMapper mapper = new ObjectMapper();
String urlStr = urlString != null ? urlString : QUOTE_SUMMARY_URL;
try {
URL url = new URL(urlStr);
httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setRequestProperty("Accept", "application/json");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line + '\n');
}
jsonString = stringBuilder.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
httpURLConnection.disconnect();
}
Quotesummary quoteSummary = mapper.readValue(jsonString, Quotesummary.class);
System.out.println(""+mapper.writerWithDefaultPrettyPrinter().writeValueAsString(quoteSummary));
return quoteSummary;
}
因为这似乎是手动调用REST服务的一种方式:您是否考虑过使用一种更好的框架,而不仅仅是以艰难的方式完成所有工作?例如,Spring的RestTemplate可以让您轻松地针对模拟服务器测试json请求。。。(除了使整个请求的代码更干净之外)因为这似乎是一种手动调用REST服务的方法:您是否考虑过使用一个比用艰难的方式来完成所有事情更好的框架?例如,Spring的RestTemplate可以让您轻松地针对模拟服务器测试json请求。。。(除了使整个请求的代码更干净之外)。