2014-01-24 51 views
-1

我想知道以下程序的JUnit测试用例。请帮助。我没有在这里列出主要方法。想知道代码中url()方法的JUnit测试用例。此代码是从网站阅读HTML并将其保存在一个文件在本地计算机上请帮我用下面的代码的JUnit测试用例

package Java3; 

     import java.io.BufferedReader; 
     import java.io.FileOutputStream; 
     import java.io.IOException; 
     import java.io.InputStreamReader; 
     import java.io.PrintStream; 
     import java.net.MalformedURLException; 
     import java.net.URL; 
     import java.util.logging.Level; 
     import java.util.logging.Logger; 


     public class Urltohtml 
     { 
      private String str; 
      public void url() throws IOException 
      { 
       try 
       { 
        FileOutputStream f=new FileOutputStream("D:/File1.txt"); 
        PrintStream p=new PrintStream(f); 

        URL u=new URL("http://www.google.com"); 
        BufferedReader br=new BufferedReader(new InputStreamReader(u.openStream())); 
        //str=br.readLine(); 
        while((str=br.readLine())!=null) 
        { 
         System.out.println(str+"\n"); 
         p.println(str); 
        } 
       } 
       catch (MalformedURLException ex) 
       { 
        Logger.getLogger(Urltohtml.class.getName()).log(Level.SEVERE, null, ex); 
       } 

      } 
     } 
+2

嘲笑,嘲笑无处不在!但是请注意,我们不能只为您编写测试代码。想想这个问题:这个方法的哪些部分可以抽出来单独测试?你可以通过什么方法来减轻测试的负担? (提示:请不要硬编码文件路径。) – Makoto

回答

2

我愿意类重命名为UrlToHtml,并编写一个JUnit测试类UrlToHtmlTest。为什么你有测试此问题的原因

部分是类设计不当和执行:

  1. 你应该在你想刮URL传递,而不是硬编码。
  2. 您应该将内容作为字符串或列表返回,而不是将其打印到文件中。
  3. 您可能想抛出该异常而不是抓住它。您的日志记录不完全“处理”特殊情况。让它冒出来,让客户登录他们的愿望。
  4. 您不需要该私人数据成员;返回内容。这可以让你使这个方法变成静态的。

好名字很重要。我不喜欢你的课程或方法。

为什么你在写图片的时候可以使用库来做到这一点?

下面是测试类可能是什么样子:

public class UrlToHtmlTest { 
    @Test 
    public void testUrlToHtml() { 
     try { 
      String testUrl = "http://www.google.com" ; 
      String expected = ""; 
      String actual = UrlToHtml.url(testUrl); 
      Assert.assertEquals(expected, actual); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Assert.fail(); 
     } 
    } 
} 
+0

嘿谢谢解释。这是新的。顺便说一句,这是第一个完整的问题,我需要解决:: – user3233164

+0

你将不得不在Java IDE上编写一个程序来做以下事情 1)从任何网站阅读HTML说“http://www.google。 (您可以使用任何Java内置API的API,例如URLConnection) 2)在控制台上打印上述url中的HTML并将其保存到本地机器中的文件(web-content.txt)。 3)上述程序的JUnit测试用例。 *要确定测试的条件,您必须完成该程序的所有3个部分。 – user3233164

+0

@ user3233164你有没有得到你的答案意味着这足以作为这个程序的测试案例..因为我也有同样的面试测试.. – roanjain