1
我有在掃描目錄,並創建所有的子目錄的陣列的類的方法。這很簡單,效果很好。但是,我想爲這種方法添加一個單元測試,而且我很難弄清楚如何。PHP單元測試和嘲笑文件系統SCANDIR()
這裏是我的問題:我能創建使用vfsstream一個虛擬文件系統,它工作正常。但是,我無法將其傳遞給我的類以從中創建數組。它需要一個真實的目錄來掃描。我想測試一個受控目錄(顯然,我確切知道每次掃描的結果是什麼,所以我可以測試它)。生產中的掃描目錄可能會頻繁更改。
所以,我唯一能做的就是在我的測試文件夾中創建一個測試專用假目錄,該路徑傳遞給我的掃描儀,然後檢查它,我所知道的是在那個假目錄。這是最佳做法還是我錯過了什麼?
謝謝!
下面是一些代碼: 測試
function testPopulateAuto()
{
$c = new \Director\Core\Components\Components;
// The structure of the file system I am checking against. This is what I want to generate.
$check = array(
'TestFolder1',
'TestFolder2',
);
$path = dirname(__FILE__) . "/test-file-system/"; // Contains TestFolder1 and TestFolder1
$list = $c->generateList($path); // Scans the path and returns an array that should be identical to $check
$this->assertEquals($check, $list);
}
謝謝,我只是用錯了VFSstream。我沒有發現文檔非常有幫助。再次感謝! – Apollo