-1

我有从网站获取 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();
      }
   }
}
4

3 回答 3

1

不要重新发明方轮。只需使用一些库。

例如来自 apache-commons 的 FileUtils - http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL, java.io.File)

于 2012-04-26T14:50:22.623 回答
0

如果您使用的是 Java 7,则可以使用Files.copy()方法将 a 的内容保存InputStream到文件中。

要验证这是否有效,您可以使用 jUnit 中的TemporaryFolder来验证您的位置是否正确,请参阅https://stackoverflow.com/a/6185359/303598

于 2012-04-26T14:42:56.653 回答
0

让你的单元测试设置一个模拟 http 服务器(谷歌会给你很多信息)。传入一个 url 并检查文件是否包含预期的内容

于 2012-04-26T14:45:28.130 回答