go-snaps 使用教程
go-snapsJest-like snapshot testing in Golang 📸项目地址:https://gitcode.com/gh_mirrors/go/go-snaps
项目介绍
go-snaps
是一个受 Jest 快照测试启发的 Go 语言快照测试库。它允许开发者在 Go 语言项目中进行类似于 Jest 的快照测试,从而简化测试过程并提高代码质量。go-snaps
支持多种数据类型,包括结构化和非结构化数据,并且可以捕获多个参数或在一个测试中多次调用快照功能。
项目快速启动
安装
首先,使用 go get
命令安装 go-snaps
:
go get github.com/gkampitakis/go-snaps
导入包
在你的测试文件中导入 go-snaps/snaps
包:
package example
import (
"testing"
"github.com/gkampitakis/go-snaps/snaps"
)
编写测试
编写一个简单的测试函数,使用 snaps.MatchSnapshot
进行快照测试:
func TestExample(t *testing.T) {
snaps.MatchSnapshot(t, "Hello World")
}
运行测试
运行你的测试:
go test
应用案例和最佳实践
多参数快照测试
你可以在一个测试中传递多个参数给 MatchSnapshot
:
func TestSimple(t *testing.T) {
t.Run("should make multiple entries in snapshot", func(t *testing.T) {
snaps.MatchSnapshot(t, 5, 10, 20, 25)
snaps.MatchSnapshot(t, "some value")
})
}
HTML 快照测试
你也可以创建 HTML 快照文件:
func TestHTMLSnapshot(t *testing.T) {
snaps.WithConfig(snaps.Ext("html"))
snaps.MatchSnapshot(t, "<html><body><h1>Hello World</h1></body></html>")
}
典型生态项目
Jest
Jest 是一个全功能的 JavaScript 测试框架,具有强大的快照功能。go-snaps
受到了 Jest 快照测试的启发。
Cupaloy
Cupaloy 是一个简单而强大的 Go 语言快照测试解决方案,go-snaps
也从中获得了灵感。
通过使用 go-snaps
,你可以轻松地在 Go 项目中实现类似于 Jest 的快照测试,从而提高测试效率和代码质量。
go-snapsJest-like snapshot testing in Golang 📸项目地址:https://gitcode.com/gh_mirrors/go/go-snaps