1. GoConvey简介
GoConvey是一款针对Golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多Web界面特性。
2. 安装
go get github.com/smartystreets/goconvey
运行完后:
在
G
O
P
A
T
H
/
s
r
c
目
录
下
新
增
了
g
i
t
h
u
b
.
c
o
m
子
目
录
,
该
子
目
录
里
包
含
了
G
o
C
o
n
v
e
y
框
架
的
库
代
码
。
在
GOPATH/src目录下新增了github.com子目录,该子目录里包含了GoConvey框架的库代码。 在
GOPATH/src目录下新增了github.com子目录,该子目录里包含了GoConvey框架的库代码。在GOPATH/bin目录下新增了GoConvey框架的可执行程序goconvey.
3. 基本使用方法
package controllers
import (
"testing"
"github.com/smartystreets/goconvey/convey"
)
func TestActivityController_UpdateUsing(t *testing.T) {
convey.Convey("3 shouldEqual 3", t, func() {
convey.So(3, convey.ShouldEqual, 3)
})
convey.Convey("shouldBeTrue where a == b", t, func() {
convey.So(IsEqual(3, 2), convey.ShouldBeTrue)
})
}
func IsEqual(a, b int) bool {
if a == b {
return true
}
return false
}
要点
4. Convey语句的嵌套
Convey语句可与无限嵌套,以体现测试用例之间的关系,需要注意的是,只有最外层的Convey需要传入*testing.T类型的变量t.
package controllers
import (
"testing"
."github.com/smartystreets/goconvey/convey"
)
func TestActivityController_UpdateUsing(t *testing.T) {
Convey("Test Convey", t, func() {
Convey("3 shouldEqual 3", func() {
So(3, ShouldEqual, 3)
})
Convey("shouldBeTrue where a == b", func() {
So(IsEqual(3, 2), ShouldBeTrue)
})
})
}
func IsEqual(a, b int) bool {
if a == b {
return true
}
return false
}
5. Web界面
在$GOPATH/bin下 执行 ./goconvey.exe, 在浏览器中输入 http://localhost:8080/, 打开Web界面。