【问题标题】:Populate TingoDB with data for acceptance test用数据填充 TingoDB 以进行验收测试
【发布时间】:2015-05-01 20:50:46
【问题描述】:

我有使用 MongoDB 作为数据库的 NodeJS 应用程序。我正在使用本机 mongo 驱动程序(不是 mongoess)。

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

为了测试我发现 TingoDB 看起来像是模拟 MongoDB 以运行真实模型代码并检查它是否正常工作的绝佳候选者。

我的问题是加载初始数据的最佳方式是什么?将其保存在单独的文件中?保留它作为另一个模型?

谢谢你, 伊多。

【问题讨论】:

    标签: node.js mongodb testing integration-testing tingodb


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢您的详细解答。我想使用 TingoDB 进行单元测试以验证我的 DAL 中的代码是否正确。诸如确保用户只看到他应该看到的项目而不看到其他东西。我知道性能非常不同 - 我现在只对正确性感兴趣。
    • 啊,有道理。如果在部署之前没有在 MongoDB 上运行测试,我仍然会犹豫是否在与生产中使用的不同的数据库上运行测试。测试时不能使用 Mongo 有什么原因吗?
    • 主要原因是速度,我认为 tingodb 的启动和停止要快得多,因为一切都在内存中
    • 哦,它实际上要慢一些...如果您在设置 MongoDB 会很痛苦的地方将它与中/小型数据集一起使用,那没关系,但是如果您要去就速度而言,这不是您想要的。请参阅:tingodb.com/info/features - “TingoDB 不是超级快,但非常接近您在合理大小的数据集上对 MongoDB 的期望。平均而言,我们估计它比 MongoDB 慢 1 到 2 倍,这对于纯 JavaScript 来说还不错解决方案。”
    • 我的数据集很小,你说使用MongoDB访问文件系统会比TingoDB内存实现快吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多