go语言的testing使用详解

                            go语言的testing使用详解

 一、注意细节 

 

  • 每一个包名使用 xxx_test.go命名
  • 每一个测试用例使用 TestXxx命名
  • 测试用例传参要用 t *testing.T 或者 t *testing.B
  • t.Errorf 是打印错误信息,并且当前测试用例会被跳过
  • t.SkipNow 跳过当前test,并且直接按pass处理下一个
  •  go test不会保证顺序执行,但是通常按照顺讯执行
  • 使用t.Run来执行subtests可以做到控制test输出以及test的顺序 (使用t.Run()顺序执行)
  • TestMain作为初始化test,并且使用m.Run来调用其他tests可以完成需要初始化的testing,比如连接数据库、文件打开rest服务等
  • 如果没有TestMain函数,执行TestXxxx形式的任何函数,如果有只执行TestMain函数
  • Benchmark用来性能测试的

二、测试用例

  • 文件名 main.go
package main
 //被测方法
func sayhello() string{	
	return "hello world"
}
  • 测试用例 main_test.go
package main
import (
	"testing"//引入包
	"fmt"
)
func testHelloWorld(t *testing.T) {
	t.SkipNow()//跳过不执行此函数
	res:=sayhello()//测试被测函数
	fmt.Println("TestHelloWorld")
	if res != "hello world"{
		t.Errorf("错误")
	}
}

func testHello(t *testing.T) {
	res:=sayhello()
	fmt.Println("TestHello")
	if res != "hello world"{
		t.Errorf("错误")
	}
}

func TestAll(t *testing.T){
    //按照顺序执行
	t.Run("TestHello",testHello)
	t.Run("TestHelloWorld",testHelloWorld)
}
//性能测试用例
func BenchmarkAll(b *testing.B){
	for n := 0; n < b.N; n++ {
		sayhello()
	}
}
//初始话函数
func TestMain(m *testing.M){
	fmt.Println("开始")
	m.Run()
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值