我有一些代碼刪除並重建一個Lucene索引,如果它被捕獲爲損壞,我想單元測試這個功能。故意破壞測試FSDirectory然後對損壞的索引執行單元測試的最佳方法是什麼?Lucene單元測試的目的損壞索引
我假設只有文件系統目錄可能被損壞,但是如果有一種方法可以模擬RAM目錄中的相同內容,那麼會更好,因爲我更喜歡在我的lucene單元測試中使用RAM。
我有一些代碼刪除並重建一個Lucene索引,如果它被捕獲爲損壞,我想單元測試這個功能。故意破壞測試FSDirectory然後對損壞的索引執行單元測試的最佳方法是什麼?Lucene單元測試的目的損壞索引
我假設只有文件系統目錄可能被損壞,但是如果有一種方法可以模擬RAM目錄中的相同內容,那麼會更好,因爲我更喜歡在我的lucene單元測試中使用RAM。
可以腐敗的東西,在任何目錄下,只需要使用目錄API直接向陷入困境的索引文件。
例如,看一下Lucene的MockDirectoryWrapper.crash()(用於單元測試)中的邏輯來模擬機器崩潰(通過搞砸任何尚未精簡的文件):它通過截斷文件,歸零文件的一部分,完全刪除文件,或將文件完全截斷爲0字節文件。
您是否有任何鏈接到資源來設置lucene單元測試?我可以在Google上找到那裏似乎沒有多少東西。 – ryandlf 2012-03-24 21:10:07
假設索引文件之一是至少2K:
dd if=/dev/urandom of=<index file> bs=1K count=1 seek=1K
[M-x蝴蝶](http://xkcd.com/378/)? – 2012-03-24 19:14:00