2014-03-13 63 views
0

對Junit來說我很新,我想知道如果有人能給我一個如何爲這個方法編寫單元測試的例子嗎?甚至如果你能指出我在正確的方向,因爲我不確定使用嘲弄和存根的,如果我需要他們在這個特殊的情況下,當使用它們等...簡單的Junit使用模擬/存根的這個類的測試方法

public static String[] getDirectoryList(String parentPath, String directoryNames) { 
    final List<String> directoryList= new ArrayList<String>(); 
    String[] directoryArray = directoryNames.split(", "); 

    for(String directories : directoryArray){ 
     directories.trim(); 
     directories = parentPath + directories; 
     directoryList.add(directories); 
    } 

    if (directoryList.size()==0) 
     return null; 
    else 
     return directoryList.toArray(new String[directoryList.size()]); 

} 
+0

你有試過什麼嗎?你閱讀過文檔嗎? – Theolodis

+0

你不需要模擬測試這種方法;另外,我看到它的一個錯誤;) – fge

+0

嗨,是啊,我已閱讀文檔,但有點困惑,所有這些模擬和存根的東西!感謝@fge指出我並不需要嘲笑,如果你能夠啓發我的錯誤,這將是偉大的...... – smurfMT

回答

0
這個

你不需要模擬。

@Test 
    public void testWithOneDirectory() { 
     String[] directoryList = getDirectoryList("/", "home"); 
     Assert.assertArrayEquals(" sould equal to on dir",ONE_DIR, directoryList); 
    } 

    @Test 
    public void testShouldThrowException{ 
     try{ 
      String[] directoryList = getDirectoryList("/", null); 
      fail("Should throw exception when arg is null"); 
     } 
     catch(Exception e) {} 
    } 
+0

完美,正是我所期待的,一個好的積木...... – smurfMT

0

您通常會模擬依賴關係,以確保您只測試要測試的代碼。例如:如果您的方法正在調用DAO,那麼您需要嘲笑該DAO以確保DA​​O的實現細節不會影響測試結果(實質上,您希望隔離代碼)。

就你而言,由於你正在測試的方法沒有任何依賴關係,所以你不需要任何模擬。

相關問題