Junit用于创建文件的void方法的测试用例

时间:2012-04-26 13:59:09

标签: java file-io junit4

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

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

让您的单元测试设置为模拟http服务器(谷歌将为您提供大量信息)。传入网址并检查文件是否包含预期内容