Go-单元测试

单元测试

  • 测试用例的命名必须 是以xxx_test.go的格式

  • 测试用例函数必须TestXxx开头,一般来说是Test+被测试函数名,且必须为大驼峰命名

  • TestAdd(t *tesing.T)的形参类型必须是*tesing.T

  • 运行测试用例指令

    • cmd>go test 运行正确,无日志;错误时,会输出日志
    • cmd>go test -v 运行不管正确还是错误,都输出日志
  • 出现错误时,使用t.Fatalf来格式化输出错误信息 ,并退出程序;t.Logf方法可以输出响应日志

代码示例

  • cal.go
go 复制代码
package uintTest

import "time"

func Add(a, b int) int {
	time.Sleep(time.Second * 1)
	return a + b
}
  • cal_test.go
go 复制代码
package uintTest

import "testing"

func TestAdd(t *testing.T) {
	res := Add(1, 2)
	if res != 3 {
		t.Fatalf("Add() 执行错误")
	}
	t.Logf("Add() 执行正确...")
}

运行过程

程序在执行main函数前,先检测是否存在xxx_test.go文件的存在,若有则加载testing框架,然后执行以TestXxx命名的测试函数。

相关推荐
诸神缄默不语3 分钟前
当无法直接用apt instll时,Linux如何离线安装软件包(以make为例)
linux·运维·服务器
learning-striving12 分钟前
kali默认桌面Xfce切换为GNOME桌面
linux·运维·服务器·kali
£漫步 云端彡23 分钟前
Golang学习历程【第十篇 方法(method)与接收者】
开发语言·学习·golang
Bear on Toilet1 小时前
腾讯云服务器开放UDP端口操作手册_2026最新
服务器·udp·腾讯云
吕司1 小时前
Linux系统安装MySQL
linux·运维·服务器
源力祁老师1 小时前
深入解析 Odoo 中 default_get 方法的功能
java·服务器·前端
阿猿收手吧!1 小时前
【C++】模板偏特化与std::move深度解析
服务器·c++
小二·2 小时前
Go 语言系统编程与云原生开发实战(第10篇)性能调优实战:Profiling × 内存优化 × 高并发压测(万级 QPS 实录)
开发语言·云原生·golang
DFT计算杂谈2 小时前
VASP+Wannier90 计算位移电流和二次谐波SHG
java·服务器·前端·python·算法
serve the people2 小时前
python环境搭建 (九) 极简日志工具 loguru
linux·服务器·python