登录
首页 >  Golang >  Go问答

Go:如何对一段适用于 Mongo 集合的代码进行单元测试?

来源:stackoverflow

时间:2024-04-27 14:42:40 397浏览 收藏

大家好,我们又见面了啊~本文《Go:如何对一段适用于 Mongo 集合的代码进行单元测试?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我正在使用 go 的官方 mongo 驱动程序。我的代码如下所示(为了使示例更简单,省略了错误处理):

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 函数进行单元测试?

我浏览了驱动程序的文档,没有找到任何与测试相关的功能/最佳实践。

注意:完整代码可在 github 上获取。


解决方案


根据定义,您无法对与数据库的连接进行单元测试 - 这将是集成测试。在我看来,这种方法太简单了,不需要用模拟 MongoDB 进行测试;相反,最大的价值可能来自以下组合:

  1. 模拟 DB 类型,消费者可以将其用于单元测试,而无需访问 MongoDB。
  2. DB 类型本身的集成测试,它会命中真实的测试 Mongo 数据库 - 这可能是由测试套件创建和填充的测试数据库,并在测试完成后销毁(这将这是我的推荐)。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go:如何对一段适用于 Mongo 集合的代码进行单元测试?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>