我有一些代码删除并重建一个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