首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏人人都是架构师

    Go单测系列3—MySQL和Redis测试

    这是Go语言单元测试从零到溜系列教程的第2篇,介绍了如何使用go-sqlmock和miniredis工具进行MySQL和Redis的mock测试。 go-sqlmock sqlmock 是一个实现 sql/driver 的mock库。它不需要建立真正的数据库连接就可以在测试中模拟任何 sql 驱动程序的行为。 安装 go get github.com/DATA-DOG/go-sqlmock 使用示例 这里使用的是go-sqlmock官方文档中提供的基础示例代码。 在很多使用ORM工具的场景下,也可以使用go-sqlmock库mock数据库操作进行测试。 miniredis 除了经常用到MySQL外,Redis在日常开发中也会经常用到。 总结 在日常工作开发中为代码编写单元测试时如何处理数据库的依赖是最常见的问题,本文介绍了如何使用go-sqlmock和miniredis工具mock相关依赖。

    99520编辑于 2023-09-10
  • 来自专栏golang云原生new

    Golang 单元测试合集整理,(我最常用 gomonkey)欢迎收藏

    h2non/gock.v1" 具体案例可以查看如下地址,这里就不写其他例子了: https://pkg.go.dev/gopkg.in/h2non/gock.v1#readme-examples go-sqlmock mock mysql 工具 看到工具名称,我们就可以知道,这个是来 mock 数据库的,当我们没有环境或者数据库没有办法正常使用的时候,我们就可以使用 go-sqlmock 工具,用起来非常方便 go get github.com/DATA-DOG/go-sqlmock 代码中 import "github.com/DATA-DOG/go-sqlmock" 案例地址:https://github.com /DATA-DOG/go-sqlmock miniredis mock redis 的工具 同理,这是一个 redis 的 mock 工具,我们可以查看地址,来进行查看案例: https://github.com

    2.5K31编辑于 2023-09-14
  • 来自专栏网管叨bi叨

    Go项目实战--数据Dao层代码的单元测试实战

    我们这里采用的是第三个流派,用 sqlmock 方式来做数据库Dao的单元测试,本节的内容大纲主要如下: 这里我们会用到DataDog家开发的go-sqlmock这个工具,先来安装一下它: github.com /DATA-DOG/go-sqlmock 安装过程如下: 单元测试入口TestMain的设置 我们计划在 UserDao 和 OrderDao 中找几个典型的方法来做单元测试的实战,这里我们先在新建test 在TestMain方法中初始化go-sqlmock ,这样整个dao下的测试用例就都能使用它了,TestMain是在当前package下最先运行的一个函数,无论你运行哪个测试用例TestMain都会先被 dao2.SetDBMasterConn(dbMasterConn) dao2.SetDBSlaveConn(dbSlaveConn) os.Exit(m.Run()) } 这里我们创建一个 go-sqlmock

    35700编辑于 2025-04-23
  • 来自专栏贾维斯Echo的博客

    Go 单元测试之Mysql数据库集成测试

    二、安装 go get github.com/DATA-DOG/go-sqlmock 三、基本用法 使用 sqlmock 进行 MySQL 数据库集成测试的基本步骤如下: 创建模拟 DB 连接: import ( "database/sql" "testing" "github.com/DATA-DOG/go-sqlmock" ) func TestMyDBFunction(t * int64 } 接着我们用编写测试用例 package dao import ( "context" "database/sql" "errors" "github.com/DATA-DOG/go-sqlmock

    59510编辑于 2024-04-18
  • 来自专栏腾讯云数据库团队的专栏

    go 单元测试进阶篇

    4.go-sqlmock 还有一种比较常见的场景就是和数据库的交互场景,go-sqlmock是sql模拟(Mock)驱动器,主要用于测试数据库的交互,go-sqlmock提供了完整的事务的执行测试框架, = nil { t.Errorf("not implements: %s", err) } } 更多例子和详情,请查看官网:DATA-DOG/go-sqlmock 介绍了这么多框架

    9.2K31发布于 2017-01-05
  • 来自专栏每日一善

    每天坚持20分钟编写测试

    "github.com/smartystreets/goconvey/convey""github.com/DATA-DOG/go-sqlmock""github.com/jinzhu/gorm"bench

    19110编辑于 2022-07-06
  • 来自专栏网管叨bi叨

    在项目里怎么给 GORM 做单元测试

    在 Go 单元测试这个系列的第二部分 数据库的Mock测试 中我们介绍了用 go-sqlmock 给数据库的 CRUD 操作做Mock 测试的方法,不过里面只是讲解了一下怎么对原生的database/sql 在很多使用ORM工具的场景下,也可以使用go-sqlmock库 Mock数据库操作进行测试,今天这篇内容我就以 GORM 为例,讲解怎么给项目中的 ORM 数据库操作做单元测试。 , userId).Updates(updated).Error return } 接下来我们就用 go-sqlmock 工具给这几个 DAO 函数做一下 Mock 测试。

    2.6K20编辑于 2022-05-23
  • 基于sqlmock模拟数据库驱动编写Golang单元测试用例

    go-sqlmock 本质是一个实现了 sql/driver 接口的 mock 库,它的设计目标是支持在测试中,模拟任何 sql driver 的行为,而不需要一个真正的数据库连接。 controllerimport ( "fmt" "testing" "gorm.io/driver/mysql" "gorm.io/gorm" "github.com/DATA-DOG/go-sqlmock controllerimport ( "fmt" "testing" "gorm.io/driver/mysql" "gorm.io/gorm" "github.com/DATA-DOG/go-sqlmock

    1.4K10编辑于 2024-03-25
  • 来自专栏腾讯移动品质中心TMQ的专栏

    golang三大基础mock大法

    二、使用sqlmock来mock数据库 官网链接:https://github.com/DATA-DOG/go-sqlmock 实际业务中query语句用的比较多,下面以query语句为例详细介绍sqlmock

    14.1K50发布于 2019-06-19
  • 来自专栏Go工具箱

    「Go开源包」nunu:一个快速构建应用程序的脚手架

    stretchr/testify Sonyflake: https://github.com/sony/sonyflake Gocron: https://github.com/go-co-op/gocron Go-sqlmock : https://github.com/DATA-DOG/go-sqlmock Gomock: https://github.com/golang/mock 简洁的分层架构 Nunu采用了经典的分层架构

    1.5K40编辑于 2023-08-28
  • 来自专栏后端系统和架构

    一文了解一线互联网大厂的 Golang 单测最佳实战经验

    给出正向、反向的反馈,总结经验 • 刚开始不要求单测覆盖率一定达到多少,先把流程跑起来 • 后期大家都接受并且认可之后,根据团队情况,规定合适的单测覆盖度 其他常见的 mock 库 数据库相关操作采用 go-sqlmock go-sqlmock 本质是一个实现了 sql/driver 接口的 mock 库,它的设计目标是支持在测试中,模拟任何 sql driver 的行为,而不需要一个真正的数据库连接。 因为这个可能会对数据库造成一些压力甚至是脏数据,尤其是写操作;再者,直连数据库会导致单测耗时较长; 使用起来也比较简单,示例如下,详细的可以参考 https://github.com/DATA-DOG/go-sqlmock 里面的详细使用: import ( "fmt" "testing" "github.com/DATA-DOG/go-sqlmock" ) // a successful case

    3.4K20编辑于 2023-03-01
  • 来自专栏网管叨bi叨

    上次的问题解决啦,重新送上Go ORM 单元测试全流程讲解

    在很多使用ORM工具的场景下,也可以使用go-sqlmock库 Mock数据库操作进行测试,今天这篇内容我就以 GORM 为例,讲解怎么给项目中的 ORM 数据库操作做单元测试。 , userId).Updates(updated).Error return } 接下来我们就用 go-sqlmock 工具给这几个 DAO 函数做一下 Mock 测试。

    1.1K40编辑于 2022-05-23
  • 来自专栏Go

    Go系列:这个单测为什么过不了

    ListUsers写一个单测package models import ( "database/sql" "strconv" "testing" "github.com/DATA-DOG/go-sqlmock

    33410编辑于 2024-11-21
  • 来自专栏传说之下的花儿的日常学习笔记

    Go语言——测试与性能

    mysql:go-sqlmock sqlmock 是一个实现 sql/driver 的mock库。它不需要建立真正的数据库连接就可以在测试中模拟任何 sql 驱动程序的行为。 安装 go get github.com/DATA-DOG/go-sqlmock 使用示例: 这里使用的是go-sqlmock官方文档中提供的基础示例代码。 return err } ./02_testing/test07/test07_test.go package main import ( "fmt" "github.com/DATA-DOG/go-sqlmock 在很多使用ORM工具的场景下,也可以使用go-sqlmock库mock数据库操作进行测试。 redis:miniredis 除了经常用到MySQL外,Redis在日常开发中也会经常用到。

    1.5K30编辑于 2023-04-16
  • go-i18n 国际化工具使用样例

    LanguageMode", }) fmt.Println(languageMode)}go.modmodule platformgo 1.18require ( github.com/DATA-DOG/go-sqlmock

    1.8K10编辑于 2024-05-30
  • 来自专栏luozhiyun的技术学习

    Golang 简洁架构实战

    ; repo 层:对于这一层来说,由于我们使用了 mysql 数据库,那么我们需要 mock mysql,这样即使不用连mysql 也可以正常测试,我这里使用 github.com/DATA-DOG/go-sqlmock repo 层测试 在项目中,由于我们用了 gorm 来作为我们的 orm库,所以我们需要使用 github.com/DATA-DOG/go-sqlmock 结合 gorm 来进行 mock: func

    1.5K10编辑于 2022-05-09
  • 来自专栏golang从入门到进阶

    Go 语言生产环境必备包清单

    编译时生成代码,运行时无额外开销✅灵活查询:支持链式查询构建器✅数据库多样:支持PostgreSQL、MySQL、SQLite等⚠️注意:已进入维护模式,但稳定可用,新项目可以使用gormDATA-DOG/go-sqlmock

    7710编辑于 2026-03-27
  • 来自专栏人人都是架构师

    Go单测系列4—mock接口测试

    在上一篇《Go单测系列3—数据库测试》中,我们介绍了如何使用go-sqlmock和miniredis工具进行数据库测试。 除了网络和数据库等外部依赖之外,我们在开发中也会经常用到各种各样的接口类型。

    1.3K30编辑于 2023-09-10
  • 来自专栏数据小冰

    Go语言中常见100问题-#5 Interface pollution

    我们需要先启动MySQL数据库,才能对其进行测试(除非使用诸如go-sqlmock之类的替代方法)。尽管集成测试很有帮助,但它并不总是我们想要的。

    64420编辑于 2022-12-18
  • 来自专栏PingCAP的专栏

    DM 源码阅读系列文章(十)测试框架的实现

    其他 mock 工具 在验证数据库读写操作逻辑正确性的测试中,使用了 go-sqlmock 来 mock sql driver 的行为。

    1K20发布于 2019-07-24
领券