我对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 :(得分: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以确保DAO的实现细节不会影响测试结果(实际上,您希望隔离代码)。
在您的情况下,由于您测试的方法没有任何依赖关系,因此您不需要任何模拟。