專案目標:掃描磁盤特定格式檔案,儲存路徑資訊,支援搜尋與開啟定位。採用 TDD 循環:紅(失敗)→ 綠(通過)→ 重構。
@Test
public void testToStringFormat() {
FileInfo info = new FileInfo("a.txt", "c:\\", "c:\\a.txt", "2016-01-01");
assertEquals("a.txt###c:\\###c:\\a.txt###2016-01-01", info.toString());
}
→ 編譯錯誤:FileInfo 不存在
public class FileInfo {
private String fileName, fileDir, filePath, lastUpdate;
public FileInfo(String fileName, String fileDir, String filePath, String lastUpdate) {
this.fileName = fileName;
this.fileDir = fileDir;
this.filePath = filePath;
this.lastUpdate = lastUpdate;
}
@Override
public String toString() {
return fileName + "###" + fileDir + "###" + filePath + "###" + lastUpdate;
}
}
→ 測試通過(綠燈)
private static final String DELIMITER = "###"; // toString 使用 DELIMITER // 新增測試驗證分隔符可配置性(暫不實作,待需求驅動)
fileDBFileInfo.toString()@Test
public void testSaveAndLoad() throws IOException {
FileStorage storage = new FileStorage(tempFolder.newFile("fileDB"));
FileInfo info = new FileInfo("test.java", "/src", "/src/test.java", "2024-01-01");
storage.save(info);
List list = storage.loadAll();
assertEquals(1, list.size());
assertEquals(info.toString(), list.get(0).toString());
}