【发布时间】:2014-08-15 20:59:02
【问题描述】:
您好,我有一个方法可以将 URL 作为输入并确定它是否可访问。 代码如下:
public static boolean isUrlAccessible(final String urlToValidate) throws WAGNetworkException {
URL url = null;
HttpURLConnection huc = null;
int responseCode = -1;
try {
url = new URL(urlToValidate);
huc = (HttpURLConnection) url.openConnection();
huc.setRequestMethod("HEAD");
huc.connect();
responseCode = huc.getResponseCode();
} catch (final UnknownHostException e) {
throw new WAGNetworkException(WAGConstants.INTERNET_CONNECTION_EXCEPTION);
} catch (IOException e) {
throw new WAGNetworkException(WAGConstants.INVALID_URL_EXCEPTION);
} finally {
if (huc != null) {
huc.disconnect();
}
}
return responseCode == 200;
}
我想使用PowerMockito 对 isUrlAccessible() 方法进行单元测试。我觉得我需要使用whenNew() 来模拟URL 的创建,并且在调用url.openConnection() 时,返回另一个模拟HttpURLConnection 对象。但我不确定如何实现这一点?我在正确的轨道上吗?谁能帮我实现这个?
【问题讨论】:
-
对于它的价值,我建议你仔细看看 JMockit (jmockit.github.io),然后看看你是否可以拒绝它——我不能,它一直是我的从那时起就开始使用模拟框架。
标签: java junit mocking powermock jmockit