2015-11-20 84 views
3

我很難搞清楚如何測試我自己創建並導入到工程文件中的目錄。JUnit測試用例需要測試目錄

目前我有:

File file = new File(ExplorerView.class.getResource("/ExplorerViewTestFolder")); 

我敢從這裏試圖搶來測試Picture

ExplorerView explorer = new ExplorerView(); 

explorer.countFilesAndFolders("/ExplorerViewTestFolder"); 

EDIT2:改到

public class ExplorerViewTests { 

@Test 
public void testCountFilesAndFolders() { 

    ExplorerView explorer = new ExplorerView(); 

    explorer.countFilesAndFolders("/ExplorerViewTestFolder"); 


} 

錯誤:enter image description here

EDIT3:enter image description here

EDIT4:

public int countFilesAndFolders(File f) { 
    if (f.isFile()) { 
     return 1; 
    } else { 
     int total = 0; 

     for (File file : f.listFiles()) { 
      if (file.isHidden() == false) { 
       total += countFilesAndFolders(file); 
      } 
     } 
     return total + 1; 
    } 
} 
+1

你用'測試目錄'是什麼意思?你有任何示例代碼? – jiaweizhang

+0

當你試圖運行你現有的程序(從昨天開始,對吧?)會發生什麼? – jiaweizhang

+0

@家威章一切運行良好據我所知!我只需要做一些測試用例。 – ProjectDefy

回答

1

一個簡單的JUnit測試看起來是這樣的:

import static org.junit.Assert.assertEquals; 

import org.junit.Test; 

public class MyTests { 

    @Test 
    public void directoryTest() { 

     // ExplorerView class is tested 
     ExplorerView explorer = new ExplorerView(); 

     explorer.countFilesAndFolders("ExplorerViewTestFolder"); 

     // assert statements 
     assertEquals("filecount must be same ", 12, explorer.getNumberFiles()); 
     assertEquals("directorycount must be same ", 2, explorer.getNumberDirectories()); 
    } 

} 

如果assertEquals計算爲真 - 如果explorer.getNumberFiles() == 12explorer.getNumberDirectories() == 2,然後JUnit測試將傳遞。否則,他們會失敗。

+0

我收到一個錯誤。我去了,並將它添加到主帖子中。 (對不起,如果我做這個stackoverflow的事情是錯誤的)。 – ProjectDefy

+0

啊。輕鬆修復。它期望一個'File',但你給它一個'String'。所以,只需要使用'File f = new File(「/ ExplorerViewTestFolder」)''做我們昨天所做的。所以這行應該是:'explorer.countFilesAndFolders(new File(「/ ExplorerViewTestFolder」));' – jiaweizhang

+0

我試過了,除非我讀錯了你哈哈。在這裏,我做了一個更新編號3,它給了我一些其他的東西。 – ProjectDefy