我必须使用MongoDB商店为Java代码开发一些Junit测试。是否有任何框架/库允许我初始化模拟内存中的MongoDB服务器?
(我们的想法是只测试代码本身,这意味着,如果MongoDB已安装并运行,则可以在任何机器上独立测试。)
提前致谢!
答案 0 :(得分:10)
fongo可能就是你要找的东西。
答案 1 :(得分:4)
我用Java写了一个MongoDB假实现:mongo-java-server(参见this answer)。
答案 2 :(得分:3)
我们实际上正在研究这样的测试系统,这是非常可行的。在我们的方法中,我们的测试框架扩展了标准测试用例类(在我们的例子中是JUnit,但TestNG似乎更有能力),它使用以下步骤设置和删除每个测试的各种数据库依赖:
测试套件设置
1)启动mongod进程(我们使用ProcessBuilder,存储Process实例)
测试设置:
2)使用测试特定的.js文件运行mongo以生成初始数据状态
测试
3)运行测试
测试拆解
4)删除数据库
Test Suite Teardown
5)停止mongod进程(process.destroy())
由于启动和停止mongod是唯一耗时的事情,我强烈建议尽可能少地做这件事。优选一次用于整个测试套件。我们的东西还没有完成,但早期结果是积极的。我不认为有很多替代品可供选择。在编写时没有mongo模拟库,mongod没有内存/嵌入模式。
答案 3 :(得分:1)
不是真的,你必须自己在应用程序层中做这种事情。如果您使用Morphia,您可以将任何模拟框架与您喜欢的服务层一起使用(因为对象只是POJO),但db / driver级别没有任何东西可以帮助您。
很多人只是使用本地开发者。具有一组测试数据的mongodb实例,因为它非常快。我知道为每个测试加载测试数据的人,比如使用假/测试数据复制数据库。
答案 4 :(得分:0)
作为测试夹具设置的一部分,删除数据库并使用任何默认测试数据填充它。