【问题标题】:Mongo Driver ValidationMongo 驱动程序验证
【发布时间】:2021-05-29 21:09:14
【问题描述】:

是否有一套标准的 Mongo 驱动程序集成测试(连接库)?

我有一个 C++ 中的 Mongo 库,我想对其进行验证(如果可能,还需要进行性能测试)。是否有一组标准测试(最好是数据),我可以用来验证库是否正在向 Mongo 发送和接收正确的数据?

你说的是库还是驱动?

“驱动程序库”?
它提供了链接到 Mongo 服务器的类型。
然后这些类型提供发送/接收数据等的方法。
还有一些我正在试验的更高层次的概念:
处理所有在线协议,这样您就不需要了。

你链接到一个库(所以标题/库)。

如果您正在开发新的 C++ 驱动程序,我希望您有充分的理由不使用 MongoDB 官方提供和维护的驱动程序。

没有;我没有充分的理由(除了我想尝试)。

但我确实有理由:

  • 用我用得不多的 C++17 特性进行实验。
  • 我有一个库,可以自动将 C++ 对象序列化为 BSON,无需额外代码。
    • 这似乎是一个完美的测试项目来验证它。
  • 我有一个库,它允许非阻塞地使用流(通过协同例程)允许我使用单个线程高效地从多个连接中写入/读取。
    • 这似乎是一个完美的测试项目来验证它。

MongoDB 官方提供和维护的驱动程序

当然,官方版本将获得更多支持,并且可能比我的单人乐队版本质量更高。但是你这样说好像人们应该只使用官方版本的库。

我完全不同意这个前提,因为它将我们锁定在相同的思维方式中,无法彻底改变我们与数据交互的方式。我想尝试一下,看看我是否可以与数据进行更有效的交互,也许(只是也许这会导致官方版本说嘿这是个好主意,让我们在官方驱动程序中实现它)。

竞争是激发新想法的一种方式(尽管我们可能距离竞争还有很长的路要走)。


但要达到这一点,我需要一种方法来证明我的驱动程序的行为至少符合某个标准。这意味着有某种验证方式会很好。这里有一千个 JSON 对象将它们流式传输到 mongo 并验证您获得“XX”行为或结果。


【问题讨论】:

    标签: c++ mongodb integration-testing


    【解决方案1】:

    MongoDB C++ 驱动程序是开源开发的,GitHub 上的测试也是如此: https://github.com/mongodb/mongo-cxx-driver/tree/master/src/mongocxx/test

    您的问题可能需要澄清一下:
    你说的是图书馆还是驱动程序?如果您使用的是官方的 MongoDB C++ 驱动程序,为什么您会认为它会发送错误的结果?您认为您在驱动程序之上的库会改变您的价值观吗?对独立于驱动程序的库进行测试还不够吗?
    如果您正在开发新的 C++ 驱动程序,我希望您有充分的理由不使用 MongoDB 官方提供和维护的驱动程序。

    【讨论】:

    • 不幸的是,这些是针对官方驱动程序的集成测试,而不是用于验证驱动程序行为的通用 mongo 集成测试。但如果没有其他可用的,这是一个起点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    相关资源
    最近更新 更多