前面我们介绍了golang测试框架里面的testify, 下面让了解一下另一个用的也比较多的断言框架goconvey。
一。简介
goconvey是一个支持golang的单元测试框架,能够自动监控文件修改并启动测试,并可以将测试结果实时输出到web界面,goconvey提供了丰富的断言简化测试用例的编写。
github地址:https://github.com/smartystreets/goconvey
以下是官方列举的goconvey的几个特性:
- 直接集成go test
- 可以管理和运行测试用例
- 提供了丰富的断言函数
- 支持很多 Web 界面特性(通过http://localhost:8080访问)
- 设置界面主题
- 查看完整的测试结果
- 使用浏览器提醒
- 自动检测代码变动并编译测试
- 半自动化书写测试用例:http://localhost:8080/composer.html
- 查看测试覆盖率:http://localhost:8080/reports/
- 临时屏蔽某个包的编译测试
相比较于testify,goconvey可以功能较为聚焦,自动化做的非常赞,测试报告也是非常的专业。接下来让我们具体看一下如何使用goconvey框架吧。
二。使用方法
1. 安装
代码语言:txt复制go get github.com/smartystreets/goconvey
2. Quick start
GoConvey "Given-when-then"(如果-当-推断)的模式, 非常符合我们人的正常理解逻辑。
代码语言:txt复制package package_name
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func TestSpec(t *testing.T) {
// Only pass t into top-level Convey calls
Convey("Given some integer with a starting value", t, func() {
x := 1
Convey("When the integer is incremented", func() {
x
Convey("The value should be greater by one", func() {
So(x, ShouldEqual, 2)
})
})
})
}
3. 启动
代码语言:txt复制$ $GOPATH/bin/goconvey
通过http://localhost:8080可以查看测试结果,如果测试代码有做修改,面板会自动更新。
更多请参考官方iwiki:https://github.com/smartystreets/goconvey/wiki/Documentation