-1

Web サイトから HTML を取得する Java プログラムがあります。コンソールにコンテンツを表示し、.xml という名前のファイルに保存します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()メソッドを使用して、の内容をInputStreamファイルに保存できます。

これが機能していることを確認するには、jUnitのTemporaryFolderを使用して、場所が正しいことを確認できます。https://stackoverflow.com/a/6185359/303598を参照してください。

于 2012-04-26T14:42:56.653 に答える
0

ユニットテストでモックhttpサーバーをセットアップしてもらいます(Googleから多くの情報が提供されます)。URLを渡して、ファイルに期待されるコンテンツが含まれていることを確認します

于 2012-04-26T14:45:28.130 に答える