Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 用验收测试数据填充TingoDB_Node.js_Mongodb_Testing_Integration Testing_Tingodb - Fatal编程技术网

Node.js 用验收测试数据填充TingoDB

Node.js 用验收测试数据填充TingoDB,node.js,mongodb,testing,integration-testing,tingodb,Node.js,Mongodb,Testing,Integration Testing,Tingodb,我有一个使用MongoDB作为数据库的NodeJS应用程序。我使用的是原生mongo驱动程序(不是mongoess) 应用程序允许用户处理项目并共享它们,决定允许用户查看哪些项目的逻辑构建为mongo标准选择器 为了测试这一点,我找到了一个很好的模拟MongoDB的方法,可以运行真正的模型代码并检查它是否工作 我的问题是加载初始数据的最佳方式是什么?把它单独归档?把它当作另一个模型 谢谢,, Ido。TingoDB实际上将其数据存储在平面文件中,因此如果需要,您可以将数据库的副本保存在一个目录中

我有一个使用MongoDB作为数据库的NodeJS应用程序。我使用的是原生mongo驱动程序(不是mongoess)

应用程序允许用户处理项目并共享它们,决定允许用户查看哪些项目的逻辑构建为mongo标准选择器

为了测试这一点,我找到了一个很好的模拟MongoDB的方法,可以运行真正的模型代码并检查它是否工作

我的问题是加载初始数据的最佳方式是什么?把它单独归档?把它当作另一个模型

谢谢,,
Ido。

TingoDB实际上将其数据存储在平面文件中,因此如果需要,您可以将数据库的副本保存在一个目录中并加载它

但是,如果您只是使用少量数据进行测试,那么最好将测试数据保留在测试脚本中,并将其作为测试的一部分插入到应用程序中。这样,您就可以轻松地将应用程序中的数据与您在断言中加载的数据进行比较


最后,如果您在生产环境中运行MongoDB,那么您可能应该在测试中使用MongoDB。虽然它们有几乎相同的API,但它们的性能却非常不同,这应该是您在测试中要注意的。除非在测试过程中需要使用TingoDB,否则我会尽量使其与生产环境相似。

非常感谢您提供的详细答案。我想使用TingoDB进行单元测试,以验证DAL中的代码是否正确。例如,确保用户只看到他应该看到的项目,而不看到其他内容。我知道性能是非常不同的-我只对这一点的正确性感兴趣。啊,这是有道理的。如果在部署MongoDB之前没有在MongoDB上运行测试,我仍然会犹豫是否在生产中使用的不同db上运行测试。有什么原因不能在测试时使用Mongo吗?主要原因是速度,我认为tingodb的启动和停止速度要快得多,因为所有东西都在内存中哦,它实际上慢了一点。。。如果您在一些设置MongoDB会很痛苦的地方将其用于中/小型数据集,这是可以的,但是如果您追求的是速度,那么这并不是您想要的。请参阅:-“TingoDB的速度不是很快,但非常接近您在大小合理的数据集上对MongoDB的期望。平均而言,我们估计它比MongoDB慢1到2倍,这对纯JavaScript解决方案来说并不坏。”我的数据集非常小,你说使用MongoDB访问文件系统会比TingoDB在内存中实现更快?