2014-03-13 33 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的实现细节不会影响测试结果(实质上,您希望隔离代码)。

就你而言,由于你正在测试的方法没有任何依赖关系,所以你不需要任何模拟。

相关问题