gtest java_gtest (单元测试) - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架...

gtest模块提供了简便化的、轻量级的、常用的单元测试方法。是基于标准库testing的功能扩展封装,主要增加实现了以下特性:单元测试用例多测试项的隔离。

增加常用的一系列测试断言方法。

断言方法支持多种常见格式断言。提高易用性。

测试失败时的错误信息格式统一。

gtest设计为比较简便易用,可以满足绝大部分的单元测试场景,如果涉及更复杂的测试场景,可以考虑第三方的testify、goconvey等测试框架。

使用方式:import "github.com/gogf/gf/test/gtest"

接口文档:func C(t *testing.T, f func(t *T))

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{})

简要说明:使用C方法创建一个Case,表示一个单元测试用例。一个单元测试方法可以包含多个C,每一个C包含的用例往往表示该方法的其中一种可能性测试。

断言方法Assert支持任意类型的变量比较。AssertEQ进行断言比较时,会同时比较类型,即严格断言。

使用大小比较断言方法如AssertGE时,参数支持字符串及数字比较,其中字符串比较为大小写敏感。

包含断言方法AssertIN及AssertNI支持slice类型参数,暂不支持map类型参数。

用于单元测试的包名既可以使用包名_test,也可直接使用包名(即与测试包同名)。两种使用方式都比较常见,且在Go官方标准库中也均有涉及。但需要注意的是,当需要测试包的私有方法/私有变量时,必须使用包名命名形式。且在使用包名命名方式时,注意仅用于单元测试的相关方法(非Test*测试方法)一般定义为私有,不要公开。

使用示例:

例如gstr模块其中一个单元测试用例:package gstr_test

import (

"github.com/gogf/gf/test/gtest"

"github.com/gogf/gf/text/gstr"

"testing"

)

func Test_Trim(t *testing.T) {

gtest.C(t, func(t *gtest.T) {

t.Assert(gstr.Trim(" 123456\n "), "123456")

t.Assert(gstr.Trim("#123456#;", "#;"), "123456")

})

}

也可以这样使用:package gstr_test

import (

. "github.com/gogf/gf/test/gtest"

"github.com/gogf/gf/text/gstr"

"testing"

)

func Test_Trim(t *testing.T) {

C(t, func() {

Assert(gstr.Trim(" 123456\n "), "123456")

Assert(gstr.Trim("#123456#;", "#;"), "123456")

})

}

一个单元测试用例可以包含多个C,一个C也可以执行多个断言。 断言成功时直接PASS,但是如果断言失败,会输出如下类似的错误信息,并终止当前单元测试用例的继续执行(不会终止后续的其他单元测试用例)。=== RUN Test_Trim

[ASSERT] EXPECT 123456#; == 123456

1. /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/text/gstr/gstr_z_unit_trim_test.go:20

2. /Users/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/text/gstr/gstr_z_unit_trim_test.go:18

--- FAIL: Test_Trim (0.00s)

FAIL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值