gpt4 book ai didi

mongodb - Go:如何对与Mongo集合兼容的代码进行单元测试?

转载 作者:行者123 更新时间:2023-12-01 22:08:01 24 4
gpt4 key购买 nike

我正在使用the official Mongo driver for Go。我的代码如下所示(为了简化示例,省略了错误处理):

type DB struct {
collection *mongo.Collection
}

func (db DB) GetUsers() []*User {
res, _ := db.collection.Find(context.TODO(), bson.M{})
var users []*User
res.All(context.TODO(), &users)
return users
}

问题:如何对 GetUsers函数进行单元测试?

我经历了 the driver's documentation,没有找到任何与测试相关的功能/最佳实践。

注意:完整代码可在 GitHub上找到。

最佳答案

根据定义,您无法对与数据库的连接进行单元测试-那将是一个集成测试。在我看来,这种方法太简单了,以至于无法通过模拟MongoDB进行测试。相反,最大的值(value)可能来自以下方面:

  • 一种模拟的DB类型,消费者可以在不访问MongoDB的情况下用于其单元测试。
  • 一种DB类型本身的集成测试,可访问真实的测试Mongo数据库-这可以是由测试套件创建和填充的测试数据库,并在测试完成后销毁(这是我的建议)。
  • 关于mongodb - Go:如何对与Mongo集合兼容的代码进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59898458/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com