我有一个从网站上获取HTML的Java程序。它在控制台上显示内容,然后将其保存到名为web_content.txt
的文件中。我如何为此编写测试用例?
我的计划是:
public class UrlDown {
public static void main(String[] args) throws Exception {
UrlDown down = new UrlDown();
File f = new File("web_content.txt");
String loc = "http://www.google.com";
down.saveUrlToFile(f, loc);
}
public void saveUrlToFile(File saveFile, String location) {
URL url;
try {
url = new URL(location);
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream()));
BufferedWriter out = new BufferedWriter(new FileWriter(saveFile));
char[] cbuf = new char[255];
StringBuilder builder = new StringBuilder();
while ((in.read(cbuf)) != -1) {
out.write(cbuf);
builder.append(cbuf);
}
String downloaded = builder.toString();
System.out.println();
System.out.println(downloaded);
in.close();
out.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
不要reinvent the square wheel。只需使用一些lib。
例如来自apache-commons的FileUtils - http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL, java.io.File)
答案 1 :(得分:0)
如果您使用的是Java 7,则可以使用Files.copy()方法将InputStream
的内容保存到文件中。
要验证这是否有效,您可以使用jUnit中的TemporaryFolder来验证您的位置是否正确,请参阅https://stackoverflow.com/a/6185359/303598
答案 2 :(得分:0)
让您的单元测试设置为模拟http服务器(谷歌将为您提供大量信息)。传入网址并检查文件是否包含预期内容