当前位置: > > > > Go:如何对一段适用于 Mongo 集合的代码进行单元测试?
来源:stackoverflow
2024-04-27 14:42:40
0浏览
收藏
大家好,我们又见面了啊~本文《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 进行测试;相反,最大的价值可能来自以下组合:
- 模拟
DB
类型,消费者可以将其用于单元测试,而无需访问 MongoDB。 DB
类型本身的集成测试,它会命中真实的测试 Mongo 数据库 – 这可能是由测试套件创建和填充的测试数据库,并在测试完成后销毁(这将这是我的推荐)。
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go:如何对一段适用于 Mongo 集合的代码进行单元测试?》文章吧,也可关注公众号了解相关技术文章。