如果您需要任何其他信息,請讓我知道。當使用文件函數時,jUnit獲取NullPointerException
短版本:
時使用JUnit 4.12測試的這行代碼導致NullPointerException異常:
File[] files = new File(searchPath).listFiles();
龍版本:
首先,這是環境:
- OS:Win7的臨(Netbeans的運行作爲管理員)
- IDE:Netbeans的8.0.2
- 構建自動化工具:搖籃
- 的Java:JDK 1.8
- 測試框架:JUnit的4.12
只有當我運行jUnit測試時纔會發生異常。 當我建立它沒有任何測試,一切正常,功能listFiles() from File [] files = new File(searchPath).listFiles()不返回null。
gradle clean & gradle build -x test & gradle rest:jettyRun 2> test.txt
這是解決問題的功能,堪稱我的類的構造函數:
/**
* Scans for JSON files on given path
* @param searchPath full path given
* @return String[] with the full paths and names of found files
*/
private String[] scanForJsons(String searchPath){
System.out.println("search path "+searchPath); // shows D:\..\core\files
File[] files = new File(searchPath).listFiles(); // problem line, allways returns null
System.out.print(((files!=null)?"Not null" : "Null"));
System.out.println("files.length: "+files.length);
String[] stringArray = new String[files.length];
for(int i = 0; i < files.length; i++){
String path = files[i].getName();
if (path.endsWith(".json")) {
path = path.substring(0, path.length() - 5);
}
stringArray[i] = path;
}
return stringArray;
}
現在還不清楚有問題的線路是否*收益* NULL或拋出一個例外。你的文字說了一件事,評論說另一件事。另外,請提供有問題的單元測試。 –