解析 Golang 测试(11)- 模糊测试

Go 1.18 开始提供了 fuzzing 能力的支持,testing 包在我们常见的 T, B 之外新增了 F 的类型,用于支持模糊测试。 那到底什么是模糊测试?Golang 提供了什么样的支持?作为开发者我们在什么场景下可以用呢? 今天我们继续【解析 Golang 测试】系列,带大家一起了解一下...

标签: 测试
发表于:2022-9-2 / 阅读(255) / 评论(0) 分类 Go语言
解析 Golang 测试(10)- 什么是好的单测

前面 9 讲我们谈论了很多工具层面的问题,什么是 mock,fake,stub,断言工具有哪些,官方提供了哪些支持等等。有了这些,我们写单测时会更加方便。但并不一定能写出好的单测。甚至可以说,二者的关联极小。 试想一下,回到中学时代,你给一个学生非常全面的文具,课本,教科书,他就一定能学习好么?并不...

标签: 测试
发表于:2022-9-2 / 阅读(27) / 评论(0) 分类 Go语言
解析 Golang 测试(9)- 一篇文章搞懂 testify

眨眼间,我们的【解析 Golang 测试】系列已经到第九篇了,一开始写的时候只是想补齐自己对于测试的方法论和工具的理解,一两篇文章也就够了,越写到后来发现越有意思,便一直更新下来。

标签: 测试
发表于:2022-9-2 / 阅读(23) / 评论(0) 分类 Go语言
解析 Golang 测试(8)- gomonkey 实战

今天继续我们的【解析 Golang 测试】之旅,经过前面的文章,相信大家对于单测的概念,原生支持,以及常见的 fake,mock 方案都有了一定了解。还不熟悉的同学建议回顾一下我们此前的文章。

标签: 测试
发表于:2022-9-2 / 阅读(23) / 评论(0) 分类 Go语言
解析 Golang 测试(7)- 如何针对 Redis 进行 Fake 测试

上一篇中,我们学习了 SQLite 和 go-mysql-server 这两种作为 MySQL Fake 的方式,这样可以让我们早单测阶段就暴露 SQL 语句可能的问题。

标签: 测试
发表于:2022-9-2 / 阅读(25) / 评论(0) 分类 Go语言
解析 Golang 测试(6)- 如何针对 MySQL 进行 Fake 测试

前面我们了解了什么是 Fake 和 Mock,并学习了对 sql 进行 Mock 的经典driver 库 sqlmock ,今天我们则是来看一看,针对 MySQL 我们有什么 Fake 的选项。

标签: 测试
发表于:2022-9-2 / 阅读(19) / 评论(0) 分类 Go语言
解析 Golang 测试(5)- MySQL 经典 mock driver—— sqlmock

时至今日,国内互联网绝大多数公司都在使用 MySQL 作为持久化存储,使用频率非常高。 上一篇文章中我们已经对 Fake,Mock,Stub 的概念做了区分 解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake,不清楚的同学建议先阅读一下再看这一篇。

标签: 测试
发表于:2022-9-2 / 阅读(26) / 评论(0) 分类 Go语言
解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake

今天继续我们的【解析Golang测试】第四篇,对此前文章感兴趣的同学可以点击进入: 解析 Golang 测试(1)- 原生支持 解析 Golang 测试(2)- gomock 解析 Golang 测试(3)- goconvey 实战 日常开发测试中,我们经常遇到各种【替代对象】的叫法...

标签: 测试
发表于:2022-9-2 / 阅读(23) / 评论(0) 分类 Go语言
解析 Golang 测试(3)- goconvey 实战

今天我们继续 Golang 测试之旅,在此前的文章中我们介绍了 Golang 标准库对测试的原生支持,以及经典的 golang/gomock。而我们今天的主角则是另一个经典的开源库:goconvey。 goconvey 是一套单元测试框架,比原生的go testing 好用很多。goconvey提供...

标签: 测试
发表于:2022-9-2 / 阅读(23) / 评论(0) 分类 Go语言
解析 Golang 测试(2)- gomock

上一篇文章 解析 Golang 测试 - 原生支持(1)中,我们了解了 Golang 官方 testing 库提供的支持。 今天我们一起看一下官方提供的一个 mock 工具:gomock

标签: 测试
发表于:2022-9-2 / 阅读(22) / 评论(0) 分类 Go语言
解析 Golang 测试(1)- 原生支持

开篇 我们在开发需求时,常常需要关注四个方面: 是否和需求匹配; 代码是否足够健壮,安全; 性能是否达标; 是否具备足够的扩展性,利于后期迭代维护。

标签: 测试
发表于:2022-9-2 / 阅读(23) / 评论(0) 分类 Go语言
goquery使用

简介 goquery为Go语言带来了类似于jQuery的语法和一组特性。它基于Go的net / html包和CSS Selector库cascadia。由于net / html解析器返回节点,而不是功能齐全的DOM树,因此jQuery的有状态操作函数(如height(),css(),detach()...

标签: goquery
发表于:2022-8-5 / 阅读(157) / 评论(0) 分类 Go语言
bleve初探(四)bleve支持的查询

Term 词条查询是最简单的查询。它在所提供的术语的索引中执行完全匹配。 Match 匹配查询,就像一个词条查询,但首先分析输入文本。试图使用该字段被索引时使用的相同分析器。 匹配查询可以选择性地执行模糊匹配。如果模糊性参数设置为非零整数,则分析的文本将与指定的模糊水平相匹配。另外,可以使用pref...

发表于:2022-8-4 / 阅读(88) / 评论(0) 分类 Go语言
Bleve代码阅读(二)——Index Mapping

Bleve是Golang实现的一个全文检索库,类似Lucene之于Java。在这里通过阅读其代码,来学习如何使用及定制检索功能。也是为了通过阅读代码,学习在具体环境下Golang的一些使用方式。代码的路径在github上https://github.com/blevesearch/bleve。 In...

发表于:2022-8-1 / 阅读(83) / 评论(0) 分类 Go语言
Bleve的NewIndexMapping解析

背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。

发表于:2022-8-1 / 阅读(86) / 评论(0) 分类 Go语言
为什么Go 常量只支持基本数据类型

今天给大家分享的一个提案,已经在 Go 社区讨论了整整 9 年(2013~2022),它与我们的日常编程密切相关。 今天就由煎鱼和大家一起深入学习和了解提案《proposal: spec: allow constants of arbitrary data structure type^[1]^》吧...

标签: go
发表于:2022-7-20 / 阅读(98) / 评论(0) 分类 Go语言
五分钟给你的 gRPC 服务加上 HTTP 接口

gRPC 服务要加 HTTP 接口? go-zero 给大家带来极简的 RESTful 和 gRPC 服务开发体验的同时,社区又给我们提出了新的期望: 我想只写一次代码 既要 gRPC 接口 也要 HTTP 接口

标签: go go-zero
发表于:2022-7-20 / 阅读(111) / 评论(0) 分类 Go语言
Leaf—Segment分布式ID生成系统(Golang实现版本)

简介:今天直接开门见山,先来介绍一下我今天所带来的东西。没错,看标题想必大家已经想到了 —— Leaf-segment数据库获取 ID 方案。这个方案已经喜闻乐见了,美团早就进行了开源,不过他是由 java 来实现的,所以最近为了学习这一方面知识,我用 go 自己实现了一下,目前自己验证是没有发现...

发表于:2022-7-9 / 阅读(192) / 评论(0) 分类 Go语言
golang 复制对象的正确做法

golang 复制对象的正确做法 需求   实际运用中,传参是一对象指针,现在如何最简便地复制一对象? 实现   坑:&* 先拿到值再指针?

发表于:2022-6-29 / 阅读(110) / 评论(0) 分类 Go语言
基于DDD的golang实践案例

Check the github repo for the updated code: https://github.com/victorsteven/food-app-server 领域驱动设计模式算是比较热门的话题了。 领域驱动设计(DDD)是一种软件开发方法,通过将实现与不断演变的模型相连接...

发表于:2022-5-31 / 阅读(431) / 评论(0) 分类 Go语言
golang搜索引擎

https://github.com/newpanjing/gofound https://github.com/zinclabs/zinc https://github.com/blevesearch/bleve

发表于:2022-5-8 / 阅读(385) / 评论(0) 分类 Go语言
go语言string、int、int64互相转换

string到int int,err:=strconv.Atoi(string) string到int64 int64, err := strconv.ParseInt(string, 10, 64) int到string string:=strconv.Itoa(int) int64到string...

发表于:2022-4-1 / 阅读(514) / 评论(0) 分类 Go语言
golang-使用 go test 输出单元测试覆盖率

一、背景 单元测试覆盖率是衡量代码质量的一个重要指标,重要的代码文件覆盖率应该至少达到80%以上。Java 可以通过JaCoCo 统计覆盖率,那么go 项目如何进行代码覆盖率测试呢? 二、统计方式 1、生成覆盖率报告(go test 指令) 我们知道直接执行测试代码的指令: go test 指定文件...

发表于:2022-3-29 / 阅读(250) / 评论(0) 分类 Go语言
统计 Golang 项目的测试覆盖率

我们的项目主要基于 Golang 开发,公司要求统计测试覆盖率。所以,我们摸索了一下在 Golang 下如何统计整个项目得测试覆盖率

发表于:2022-3-29 / 阅读(200) / 评论(0) 分类 Go语言
golang goquery selector(选择器) 使用

最近研究Go爬虫相关的知识,使用到goquery这个库比较多,尤其是对爬取到的HTML进行选择和查找匹配的内容时,goquery的选择器使用尤其多,而且还有很多不常用但又很有用的选择器,这里总结下,以供参考。 如果大家以前做过前端开发,对jquery不会陌生,goquery类似jquery,它是jq...

标签: goquery
发表于:2021-12-9 / 阅读(977) / 评论(0) 分类 Go语言
golang中设置Host Header的小Tips

最近在使用go的http包的时候遇到的问题: client := &http.Client{} req, _ := http.NewRequest("GET", url, nil) //这样设置无效 res.Header.Set("Host", "xxx.xxx") res, e...

发表于:2021-11-24 / 阅读(344) / 评论(0) 分类 Go语言
Go 每日一库之 goquery

简介 goquery是用 Go 语言编写的一个类似于 jQuery 的库。它基于 HTML 解析库net/html和 CSS 库cascadia,提供与 jQuery 相近的接口。Go 著名的爬虫框架colly就是基于 goquery 的。 快速使用 本文代码使用 Go Modules。

标签: goquery
发表于:2021-11-19 / 阅读(303) / 评论(0) 分类 Go语言
Golang 短网址服务核心代码

Golang 短网址服务核心代码 在一些应用的分享文案中,经常需要包含一个打开实际页面的链接,而这个链接可能会非常的长(因为可能会有很多很多参数。。)这样的分享文案不仅不够美观,而且在一些平台会受到限制,比如weibo的140字。这时候我们就需要采用一个短链接服务了。 短链服务实际上是对长链接的一个...

标签: 短网址
发表于:2021-11-16 / 阅读(501) / 评论(0) 分类 Go语言
使用Golang的官方mock工具--gomock、mockgen

在Golang的官方Repo(https://github.com/golang/)中有一个单独的工程叫"mock"(https://github.com/golang/mock),虽然star不是特别多,但它却是Golang官方放出来的mock工具,充这这点我们也需要使用下,虽...

标签: gomock mockgen
发表于:2021-11-15 / 阅读(1945) / 评论(0) 分类 Go语言
golang中validator参数校验器自定义规则及提示

在golang中自定义错误信息的展示

标签: validator
发表于:2021-11-12 / 阅读(292) / 评论(0) 分类 Go语言