简单总结下 Golang Mock 测试中的四大宗师:gomock、monkey、httptest、sqlmock
Go 使用 MySQL 连接池的正确姿势
发表于
|
分类于
Coder
sql.DB
是数据库的抽象,它提供了一些跟数据库交互的函数,同时管理维护一个数据库连接池,因此不需要频繁的创建和销毁数据库连接,并且在多个 goroutines
间也是安全的。
在 Go 项目中用 sql.Open
函数创建连接池,可是此时只是初始化了连接池的数据结构,并没有创建任何连接。
连接创建都是 惰性 的,只有当你真正使用到连接的时候,连接池才会创建连接。
连接池很重要,它直接影响着你的程序行为和性能。
【译】Go 中 httptest 包的强大之处
发表于
|
分类于
Coder
注:本文译自 The awesomeness of the httptest package in Go
Go 有一个很好的 http 包。我之所以能这么说,是因为除了标准库提供的实现之外,我不知道 Go 中有任何其他实现。这对我来说是一个好兆头。
1 | resp, err := http.Get("http://example.com/") |
这个例子来自 go 文档 。
我们来这里是为了阅读有关测试的内容,所以谁关心 http 包本身!重要的是 httptest 包!酷多了。
【译】Golang 模拟 HTTP 请求
发表于
|
分类于
Coder
注:本文翻译自 mocking-http-requests-in-golang
让我们看一下如何使用接口来构建一个 mock
的 HTTP 客户端,我们可以在 Golang 应用程序的测试套件中使用该客户端。
我很喜欢的一道 Golang 编程题 | 简单,但很有效
发表于
|
分类于
Coder
要求:
- 只能编辑 foo 函数
- foo 函数必须调用 slow 函数
- foo 函数在 ctx 超时后必须立刻返回
【加分项】如果 slow 结束的比 ctx 快,也立刻返回
1 | package main |
为什么我们需要Pod?
发表于
|
分类于
云原生
“Namespace 做隔离,Cgroups 做限制,rootfs 做文件系统”,为什么 Kubernetes 项目又突然搞出一个 Pod 来呢?
先回顾下:容器的本质到底是什么?
容器实际上是一个视图被隔离,资源受限的进程。
PID =1 的进程就是应用本身。