2012-06-17 50 views
-1

所以這是鏈接下面的類,它沒有主要的方法,我試圖測試,看看是否每一行方法[[1]:] [1]正在處理,如果沒有,它會得到錯誤。如何在這個類中測試這個方法,看看它是否工作,但它沒有主要

+2

你可以在這裏發佈你的代碼嗎? –

+0

頌歌太長,我試圖提供一個鏈接,但它似乎不工作,我無法發佈,因爲它太長 – user1456990

+0

如果有一個特定的方法,你想測試,它不應該太長期發佈。如果是這樣,你需要把它分解成更小的功能塊。 – StriplingWarrior

回答

-1

使用BlueJ。它允許您在沒有任何Main方法的情況下使用對象。

只需將Java文件導入到IDE中,右鍵單擊所獲課程的類圖表示,即可製作其對象。 IDE非常基本且用戶友好,因爲它在類和對象的圖片表示方面有很多工作。

當您擁有指定的一個或多個類的對象時,您會在IDE底部獲得對象,您可以右鍵單擊該對象進行交互。祝你好運。

+0

有些人認真不知道什麼時候downvote。只有當答案無效時,您才應該冷靜點頭。我的答案完全有效._。 – OmniOwl

+0

它可能是,但你沒有說_why_它是有效的。我真的沒有找到任何有用的答案。哪個Java IDE _doesn't_讓您可以使用沒有'main()'的類? BlueJ在這方面做得更好,OP如何使用你正在努力的功能呢?我不知道。我想知道它,但你沒有指定任何細節,我可能不會嘗試閱讀整個BlueJ文檔以找出答案。將手指指向正確的功能/頁面/文檔,您可以賺取您的優惠。 –

+1

你現在快樂嗎? – OmniOwl

0

當被測試的方法是非靜態的,你首先構造該對象,然後你可以調用這些方法。如果您的JUnit測試用例與正在測試的類名稱相同,您可以訪問公共和受保護的成員。下面是一個針對HashMap類的示例測試,它沒有主要方法。

public void testDuplicateKey() throws Exception { 
    HashMap<String,String> map=new HashMap(); 
    // setup 
    map.put("key1", "value1"); 
    map.put("key2", "value2"); 
    map.put("key3", "value3"); 
    assertEquals(3, map.size()); 
    // overwrite an existing key 
    map.put("key2", "value4"); 
    assertEquals(3, map.size()); 
    assertEquals("value4", map.get("key2")); 
} 
2

你在找什麼是JUnit,或者更具體地說,"Getting Started"有下的站點。

對於短,如果你有一個類Dog用的方法是這樣

public boolean isBrown() { 
    // some hard & heavy logic 
} 

你可能想看看它是否有效與否。要做到這一點,你會用一些測試類應用程序中創建一個test包,其中一人可能要被命名爲DogTests和包含此:

public class DogTests { 
    @Test(expected = NullPointerException.class) 
    public void nullDogShouldFailWithNpe() throws Exception { 
     new Dog(3, 14, null); 
    } 

    @Test 
    public void brownDogShouldBeBrown() throws Exception { 
     Animal animal = new Dog(3, 14, "brown"); 
     assertTrue(animal.isBrown()); 
    } 

    @Test 
    public void greenDogShouldNotBeBrown() throws Exception { 
     Animal animal = new Dog(3, 14, "green"); 
     assertTrue(animal.isBrown()); 
    } 
} 

你可以找到關於這些assert方法here文檔。

你可以在方法上面看到@Test註釋嗎?這是一個JUnit 4構造,它說「嘿,我是一個測試方法,當從這個班級運行測試時,也運行我!這裏不需要main()方法 - 當您嘗試「運行」包含類時,IDE將注意到全部@Test註釋方法本身,運行它們並顯示測試結果。

你甚至可以安排多個測試套件,同時運行測試,在構建應用程序和所有其他類型的測試魔法時自動運行它們......從此開始,挖掘網站,您將很快發現更多單元測試善良。

相關問題