2014-01-24 87 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