Golang:Golang单元测试

Golang单元测试

一.概述

  • import “testing”
  • testing 提供对 Go 包的自动化测试的支持。通过 go test 命令,能够自动执行如下形式的任何函数

func TestXxx(*testing.T)

  • 其中 Xxx 可以是任何字母数字字符串(但第一个字母不能是 [a-z]),用于识别测试例程。
  • 要编写一个新的测试套件,需要创建一个名称以 _test.go 结尾的文件,该文件包含 TestXxx 函数,如上所述。 将该文件放在与被测试的包相同的包中。该文件将被排除在正常的程序包之外,但在运行 “go test” 命令时将被包含。 有关详细信息,请运行 “go help test” 和 “go help testflag” 了解。
  • 一般测试方法是否有问题都是进行循环测试,模拟数据循环1000次看看是否有问题,下面的测试只是展示给大家看

二.相关命令

命令 介绍
go test 运行测试文件,只显示错误信息
go test -v 运行测试文件,正确错误信息都显示
go test -test.run 方法名 运行指定方法,只显示错误信息
go test -v -test.run 方法名 运行指定方法,正确错误信息都显

三.实例

  • 文件结构Golang:Golang单元测试
  • cal测试文件方法Golang:Golang单元测试
  • cal_test文件方法Golang:Golang单元测试
  • go test -v实例Golang:Golang单元测试
  • go test -v -test.run 指定方法测试实例Golang:Golang单元测试

四.代码块

//cal
package testing

func Sum(a int, b int) int {
	return a + b
}

func Sub(a int, b int) int {
	return a - b
}
//cal_test
package testing

import (
	"testing"
)

func TestSum(t *testing.T) {
	res := Sum(10, 5)

	if res != 15 {
		t.Fatalf("TestSum() 执行结果不正确,希望值是=%v,现在值是=%v", 15, res)
	}

	t.Logf("TestSum() 执行结果正确")
}

func TestSub(t *testing.T) {
	res := Sub(10, 5)

	if res != 5 {
		t.Fatalf("TestSub() 执行结果不正确,希望值是=%v,现在值是=%v", 5, res)
	}

	t.Logf("TestSub() 执行结果正确")
}

上一篇:Go——基础


下一篇:Hive入门