- gtest
gtest
gtest提供了常用的单元测试方法。
使用方式:
import "github.com/gogf/gf/g/test/gtest"
接口文档:
https://godoc.org/github.com/gogf/gf/g/test/gtest
func Case(t *testing.T, f func())func Assert(value, expect interface{})func AssertEQ(value, expect interface{})func AssertGE(value, expect interface{})func AssertGT(value, expect interface{})func AssertIN(value, expect interface{})func AssertLE(value, expect interface{})func AssertLT(value, expect interface{})func AssertNE(value, expect interface{})func AssertNI(value, expect interface{})func Error(message ...interface{})func Fatal(message ...interface{})
简要说明如下:
- 断言方法支持任意类型的变量比较;
- 使用大小比较断言方法如
AssertGE时,参数支持字符串及数字比较,其中字符串比较为大小写敏感; - 包含断言方法
AssertIN及AssertNI支持slice类型参数,暂不支持map类型参数;
使用示例:
例如gstr模块其中一个单元测试用例:
package gstr_testimport ("github.com/gogf/gf/g/test/gtest""github.com/gogf/gf/g/text/gstr""testing")func Test_Trim(t *testing.T) {gtest.Case(t, func() {gtest.Assert(gstr.Trim(" 123456\n "), "123456")gtest.Assert(gstr.Trim("#123456#;", "#;"), "123456")})}
也可以这样使用:
package gstr_testimport (. "github.com/gogf/gf/g/test/gtest""github.com/gogf/gf/g/text/gstr""testing")func Test_Trim(t *testing.T) {Case(t, func() {Assert(gstr.Trim(" 123456\n "), "123456")Assert(gstr.Trim("#123456#;", "#;"), "123456")})}
一个单元测试用例可以包含多个Case,一个Case也可以执行多个断言。断言成功时直接PASS,但是如果断言失败,会输出如下类似的错误信息,并终止当前单元测试用例的继续执行(不会终止后续的其他单元测试用例)。
=== RUN Test_Trim[ASSERT] EXPECT 123456#; == 1234561. /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/g/text/gstr/gstr_z_unit_trim_test.go:202. /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/g/text/gstr/gstr_z_unit_trim_test.go:18--- FAIL: Test_Trim (0.00s)FAIL
