目录 一、sqlmock介绍 二、安装 三、基本用法 四、一个小案例 五、Gorm初始化注意点 一、sqlmock介绍 sqlmock是一个用于测试数据库交互的Go模拟库。它可以模拟SQL查询、插入、更新等操作,并且可以验证SQL语句的执行情况,非常适合用于单元测试中。 二、安装 gogetgithub.com/DATA-DOG/go-sqlmock 三、基本用法 使用sqlmock进行MySQL数据库集成测试的基本步骤如下: 创建模拟DB连接: import( "database/sql" "testing" "github.com/DATA-DOG/go-sqlmoc...

  uGYzDadp0Cs7   23天前   29   0   0 Go

目录 一、gomock工具介绍 二、安装 三、使用 3.1指定三个参数 3.2使用命令为接口生成mock实现 3.3使用make命令封装处理mock 四、接口单元测试步骤 三、小黄书Service层单元测试 四、flags 五、打桩(stub) 参数 六、总结 6.1测试用例定义 6.2设计测试用例 6.3执行测试用例代码 6.4运行测试用例 6.5不是所有的场景都很好测试 一、gomock工具介绍 gomock是一个Go语言的测试框架,在实际项目中,需要进行单元测试的时候。却往往发现有一大堆依赖项。这时候就是Gomock大显身手的时候了,用于编写单元测...

  uGYzDadp0Cs7   23天前   54   0   0 Go

目录 一、httptest 1.1前置代码准备 1.2介绍 1.3基本用法 二、gock 2.1介绍 2.2安装 2.3基本使用 2.4举个例子 2.4.1前置代码 2.4.2测试用例 一、httptest 1.1前置代码准备 假设我们的业务逻辑是搭建一个httpserver端,对外提供HTTP服务。用来处理用户登录请求,用户需要输入邮箱,密码。 packagemain import( regexp"github.com/dlclark/regexp2" "github.com/gin-gonic/gin" "net/http" ) typeUserHan...

  uGYzDadp0Cs7   24天前   28   0   0 Go

目录 一、单元测试基本介绍 1.1什么是单元测试? 1.2如何写好单元测试 1.3单元测试的优点 1.4单元测试的设计原则 二、Go语言测试 2.1Go单元测试概要 2.2Go单元测试基本规范 2.3一个简单例子 2.3.1使用Goland生成测试文件 2.3.2运行单元测试 2.3.3完善测试用例 2.3.5回归测试 2.4Goland直接运行单元测试 2.5GoTest命令参数 2.6运行一个文件中的单个测试 2.7测试覆盖率 2.8公共的帮助函数(helpers) 三、testing.T的拥有的方法 四、表格驱动测试 4.1介绍 4.2举个例子 五、testif...

  uGYzDadp0Cs7   25天前   87   0   0 Go

目录 一、介绍 二、安装 三、导入 四、基本使用 4.1发送GET请求 4.2POST请求发送JSON数据 4.3Post文件上传 4.4GoRequests使用代理 4.5Gorequests使用session 五、HTTP服务端代码 一、介绍 官方文档DOC:https://pkg.go.dev/github.com/levigross/grequests Github:http://github.com/levigross/grequests Python中的Requests库非常强大,所以Go开发者模仿Python的Requests库,由此诞生了Grequest...

  uGYzDadp0Cs7   26天前   60   0   0 Go

目录 一、引入 二、控制反转与依赖注入 三、为什么需要依赖注入工具 3.1示例 3.2依赖注入写法与非依赖注入写法 四、wire工具介绍与安装 4.1wire基本介绍 4.2安装 五、Wire的基本使用 5.1前置代码准备 5.2使用Wire工具生成代码 六、Wire核心技术 5.1抽象语法树分析 5.2模板编程 七、Wire的核心概念 7.1两个核心概念 7.2Wire提供者(providers) 7.3Wire注入器(injectors) 八、Wire的高级用法 8.1绑定接口 8.2结构体提供者(StructProviders) 8.3绑定值 8.4使用结...

  uGYzDadp0Cs7   2024年04月07日   37   0   0 Go

在项目正式上线之前,我们通常需要通过压测来评估当前系统能够支撑的请求量、排查可能存在的隐藏bug;压力测试(压测)是确保系统在高负载情况下仍能稳定运行的重要步骤。通过模拟高并发场景,可以评估系统的性能瓶颈、可靠性和稳定性,进而优化系统架构和资源配置。 目录 一、压力测试相关术语 二、安装wrk 2.1使用Homebrew安装 2.2编译安装 2.3测试是否安装成功 三、wrk命令基本使用 3.1常用命令参数 3.2执行测试 3.3输出结果 一、压力测试相关术语 响应时间(RT):指系统对请求作出响应的时间。 吞吐量(Throughput):指系统在单位时间内处理请...

  uGYzDadp0Cs7   2024年04月01日   50   0   0 Go

目录 一、DockerCompose简介 二、DockerCompose安装 2.1Mac、Windows平台默认支持 2.2Linux安装(通过包管理) 2.2.1安装 2.2.2测试 2.2.3卸载 2.3使用PIP安装与卸载 2.3.1PIP安装 2.3.2PIP卸载 三、基本使用 3.1术语 3.2部署Flask应用 四、Compose常用命令 4.1命令对象与格式 4.2docker-compose常用命令 4.2.1config 4.2.2pull 4.2.3up 4.2.4logs 4.2.5ps 4.2.6run 4.2.7exec 4.2.8pa...

  uGYzDadp0Cs7   2024年03月27日   164   0   0 Go

目录 一、GinSession存储的实现方案 二、memstore:基于内存的实现 2.1基本使用 2.2关键参数 三、使用redis:多实例部署 3.1使用redis优势 3.2基本使用 四、信息安全的三个核心概念 五、GinSession参数 5.1参数介绍 六、Session自动刷新 一、GinSession存储的实现方案 cookie:基于cookie的实现,不安全,一般不会使用。 gorm:基于GORM的实现 memcached:基于Memcached的实现 memstore:基于内存的实现,一般单实例部署用的比较多,或者本地测试。 mongo:基于Mo...

  uGYzDadp0Cs7   2024年02月19日   77   0   0 Go

目录 一、引入 二、密码加密位置 三、如何加密 四、bcrypt库加密 4.1介绍 4.2优点: 4.3使用 五、小黄书密码加密实践 一、引入 Gin是一个用Go语言编写的Web框架,而用户密码的加密通常是在应用程序中处理用户身份验证时的一个重要问题。 通常敏感信息你要防两类人: 研发人员:包括你自己和你的同事。作为研发人员,你可能会接触到公司的敏感信息,如用户数据、商业机密等。 攻击者:指那些有意获取或破坏敏感信息的人。他们可能是黑客、竞争对手、内部威胁等。 所以为了增加安全性,密码通常不应以明文形式存储在数据库中,而是应该经过适当的加密处理。 二、密码加密位置 实际...

  uGYzDadp0Cs7   2024年01月18日   90   0   0 Go

目录 一BelongsTo(一对一) 1.1BelongsTo 1.2重写外键 1.3重写引用(一般不用) 1.4Belongsto的CRUD 1.5预加载 1.6外键约束 二、HasOne 2.1HasOne 2.2重写外键 2.3重写引用 2.4多态关联 2.5HasOne的CURD 2.6预加载 2.7自引用HasOne 2.8外键约束 三、HasMany 3.1HasMany 3.2重写外键 3.3重写引用 3.4多态关联 3.5HasMany的CURD 3.6预加载 3.7自引用HasMany 3.8外键约束 四、ManyToMany(多对多) 4.1Many...

  uGYzDadp0Cs7   2024年01月13日   18   0   0 Go

目录 一、Docker快速创建MySQL实例 1.1创建 1.3创建数据库 二、AutoMigrate介绍与使用 2.1AutoMigrate介绍 2.2AutoMigrate基本使用 三、模型定义 3.1模型定义 3.2快速增删改查 3.3约定 3.4gorm.Model 四、表模型主键、表名、列名的约定 4.1主键(PrimaryKey) 4.1.1使用ID作为主键 4.1.2复合主键 4.2表名(TableName) 4.2.1TableName 4.2.2临时指定表名 4.2.3命名策略 4.3列名(ColumnName) 4.4时间戳跟踪 4.4.1...

  uGYzDadp0Cs7   2024年01月12日   12   0   0 Go

Gorm入门介绍与基本使用 目录 Gorm入门介绍与基本使用 一、ORM简介 1.1什么是ORM 1.2使用ORM的好处 1.2.1避免直接操作SQL语句 1.2.2提高代码的可维护性 1.2.3跨数据库兼容性 1.3使用ORM的缺点 1.3.1学习成本 1.3.2性能开销 1.4ORM解析过程 1.4.1模型定义 1.4.2数据验证 1.4.3映射关系 1.4.4CRUD操作 1.4.5SQL生成与执行 二、Gorm介绍与安装 2.1介绍 2.2相关文档 2.3安装 三、Gorm连接数据库 3.1快速连接MySQL 3.2MySQL数据库配置解析 3.3自定...

  uGYzDadp0Cs7   2024年01月10日   15   0   0 Go

【一文搞定】Linux、Mac、Windows安装Docker与配置教程! 目录 【一文搞定】Linux、Mac、Windows安装Docker与配置教程! 一、Windows安装 1.1安装与启用Hyper-V 1.2安装WSL 1.3DockerDesktop官方下载 1.4安装DockerDesktop 二、MacOS安装 2.1DockerDesktop官方下载 2.2安装DockerDesktop 三、Mac和Windows配置镜像加速 四、Linux安装docker 五、linux配置镜像加速 一、Windows安装 1.1安装与启用Hyper-V Hy...

  uGYzDadp0Cs7   2024年01月09日   14   0   0 Go

Gin路由注册与请求参数获取 目录 Gin路由注册与请求参数获取 一、Web应用开发的两种模式 1.前后端不分离模式 2.前后端分离模式 二、RESTful介绍 三、API接口 3.1RESTfulAPI设计指南 3.2API与用户的通信协议 3.3RestFulAPI接口设计规范 3.3.1api接口 3.3.2接口文档: 3.4restful规范(10条,规定了这么做,公司可以不采用) 四、图书管理系统设计 五、Gin路由类型 通配符路由 六、路由参数 6.1获取URL后面的参数 6.2获取path参数 6.3取JSON参数 七、路由组 7.1普通路...

  uGYzDadp0Cs7   2024年01月05日   101   0   0 Go

目录 一、什么是热加载 二、Air 2.1介绍 2.2特性 特性: 2.3相关文档 2.4安装 推荐使用install.sh 使用goinstall 2.5配置环境变量 2.6使用 三、Fresh 3.1介绍 3.2相关文档 3.3安装与使用 四、bee 4.1介绍 4.2相关文档 4.3安装与使用 4.4基本命令 五、gowatch 5.1介绍 5.2相关文档 5.3安装与使用 5.4基本命令与参数 5.5.生成配置文件 六、gin 6.1介绍 6.2相关文档 6.3安装与使用 6.4命令与参数 七、realize(不推荐,已经好久没维护了) 7.1介绍 ...

  uGYzDadp0Cs7   2024年01月05日   107   0   0 Go

Gin框架介绍与快速入门 目录 Gin框架介绍与快速入门 一、Gin框架介绍 1.快速和轻量级 2.路由和中间件 3.JSON解析 4.支持插件 5.Gin相关文档 二、基本使用 1.安装 2.导入 3.第一个Gin应用 三、应用举例 四、Gin入门核心 1.gin.Engine 2.gin.Context 一、Gin框架介绍 Gin是一个轻量级的Go语言Web框架,它具有高性能和简洁的设计。由于其快速的路由匹配和处理性能,Gin成为Go语言中最受欢迎的Web框架之一。以下是一些Gin框架的主要特点: 1.快速和轻量级 Gin框架的设计注重性能和效率,采用了一些...

  uGYzDadp0Cs7   2024年01月04日   45   0   0 Go

Go泛型之泛型约束 目录 Go泛型之泛型约束 一、引入 二、最宽松的约束:any 三、支持比较操作的内置约束:comparable 四、自定义约束 五、类型集合(typeset) 六、简化版的约束形式 七、约束的类型推断 八、小结 一、引入 虽然泛型是开发人员表达“通用代码”的一种重要方式,但这并不意味着所有泛型代码对所有类型都适用。更多的时候,我们需要对泛型函数的类型参数以及泛型函数中的实现代码设置限制。泛型函数调用者只能传递满足限制条件的类型实参,泛型函数内部也只能以类型参数允许的方式使用这些类型实参值。在Go泛型语法中,我们使用类型参数约束(typeparameter...

  uGYzDadp0Cs7   2023年12月29日   15   0   0 Go

Go泛型之了解类型参数 目录 Go泛型之了解类型参数 一、Go的泛型与其他主流编程语言的泛型差异 二、返回切片中值最大的元素 三、类型参数(typeparameters) 四、泛型函数 3.1泛型函数的结构 3.2调用泛型函数 3.3泛型函数实例化(instantiation) 五、泛型类型 5.1声明泛型类型 5.2使用泛型类型 5.2.1泛型类型与类型别名 5.2.2泛型类型与类型嵌入 六、泛型方法 一、Go的泛型与其他主流编程语言的泛型差异 Go泛型和其他支持泛型的主流编程语言之间的泛型设计与实现存在差异一样,Go的泛型与其他主流编程语言的泛型也是不同的。...

  uGYzDadp0Cs7   2023年12月23日   19   0   0 Go

Go接口:Go中最强大的魔法,接口应用模式或惯例介绍 目录 Go接口:Go中最强大的魔法,接口应用模式或惯例介绍 一、前置原则 二、一切皆组合 2.1一切皆组合 2.2垂直组合 2.2.1第一种:通过嵌入接口构建接口 2.2.2第二种:通过嵌入接口构建结构体类型 2.2.3第三种:通过嵌入结构体类型构建新结构体类型 2.3水平组合 三、接口应用的几种模式 3.1基本模式 3.2创建模式 3.3包装器模式 3.4适配器模式 3.5中间件(Middleware) 四、接口使用的注意事项 尽量避免使用空接口作为函数参数类型 五、小结 一、前置原则 在了解接口应用模...

  uGYzDadp0Cs7   2023年11月12日   56   0   0 Go
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~