我做了一个方法的测试用例,它将调用实际的方法并执行它。
该方法用于创建目录。
以下是我的代码:
实际方法:
public String getDefaultFolderPath() {
String path = "";
try {
String os = System.getProperty("os.name");
System.out.println("Os name Identified");
if (os.toUpperCase().indexOf("WINDOWS") != -1) {
File file = new File("C:/MARCDictionary");
if (!file.exists()) {
System.out.println("11");
file.mkdir();
}
path = "C:/MARCDictionary";
} else if (os.toUpperCase().indexOf("LINUX") != -1) {
File file = new File("/usr/MARCDictionary");
if (!file.exists()) {
System.out.println("22");
//file.mkdir();
file.createNewFile();
}
path = "/usr/MARCDictionary";
}
} catch (Exception e) {
e.printStackTrace();
}
return path;
}
测试用例:
@Test
public void testGetDefaultFolderPath() {
System.out.println("getDefaultFolderPath");
Utilities instance = Utilities.getInstance();
String expResult = "/usr/MARCDictionary";
String result = instance.getDefaultFolderPath();
assertEquals(expResult, result);
}
给我一个错误:
getDefaultFolderPath
Os name Identified
22
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1006)
at NGLUtility.NGLUtilities.getDefaultFolderPath(Utilities.java:108)
at utilities.NGLUtilitiesTest.testGetDefaultFolderPath(UtilitiesTest.java:85)
org.junit.ComparisonFailure:
Expected :/usr/MARCDictionary
任何建议请为什么会发生这样的事情..
我正在使用Ubuntu
和Intellij IDEA.
答案 0 :(得分:1)
您的程序对/usr
目录没有写入权限。您必须对此文件夹授予写入权限,或者尝试/usr
中具有写入权限的其他文件夹。例如,要授予/usr
的所有权限,您可以使用chmod 777 /usr
希望这有帮助