使用模拟/存根的此类的简单Junit测试方法

时间:2014-03-13 09:22:15

标签: java unit-testing 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()]);

}

2 个答案:

答案 0 :(得分: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) {}
    }

答案 1 :(得分:0)

您通常会模拟依赖项,以确保您只测试要测试的代码。

例如:如果您的方法正在调用DAO,那么您需要模拟该DAO以确保DA​​O的实现细节不会影响测试结果(实际上,您希望隔离代码)。

在您的情况下,由于您测试的方法没有任何依赖关系,因此您不需要任何模拟。

相关问题