我想对lucene框架进行一些单元测试,但老实说我不知道如何去做。我似乎无法弄清楚最基本的任务,例如:
包含一些教程或示例的资源会很棒。谷歌似乎没有发现任何与Lucene单元测试相关的内容,虽然Lucene的网站有很好的文档,但它们在教程方面没有提供任何内容。
通常我使用RAMDirectory并将其注入到我的lucene类中以对基本函数执行单元测试,例如向索引添加文档,或删除文档等,这很好,但它不允许我测试错误比如我上面列出的那些。
我可以创建一个物理目录测试文件,创建测试目录,然后删除其中一个文件以实际损坏它,但有没有办法以模拟方式执行此操作而不必在磁盘上创建文件?< / p>
答案 0 :(得分:4)
我不知道'测试不运行'是什么意思:但是你绝对批评你使用记录的确切版本的junit来处理你的版本:
例如,对于3.5:
取决于junit 4.7.x(不是4.6.x,而不是4.8.x)
http://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_3_5/lucene/README.txt
Junit有时会破坏向后兼容性,这不是我们的错。
对于模拟错误等更高级的东西,你将不得不查看代码或查看Lucene中的类似测试。例如。假冒磁盘已满错误,只需查看TestIndexWriterOnDiskFull即可查看它是如何做到的。