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命名的测试函数。

相关推荐
Waay4 小时前
Linux Shell 知识点考评(一):grep 文本搜索(附答案)
linux·运维·服务器
weixin_514253187 小时前
511-qwen3.5-patch
服务器
wanhengidc9 小时前
服务器中带宽的重要性
运维·服务器·网络·安全·web安全
1892280486110 小时前
H27QCG8T2ELR-BCF海力士H27QCG8UDBIR-BCB
大数据·服务器·人工智能·科技·缓存
сокол11 小时前
【网安-Web渗透测试-内网渗透】局域网ARP攻击与DNS劫持
服务器·网络·网络安全
姚青&11 小时前
常用的测试平台
单元测试
想唱rap11 小时前
传输层协议TCP
linux·运维·服务器·网络·c++·tcp/ip
曦夜日长12 小时前
Linux系统篇,权限(二):缺省权限、最终权限的计算、文件隔离的两种方式
linux·运维·服务器
kebidaixu12 小时前
OK3568开发板更新Ubuntu22.04方法总结
linux·运维·服务器
一只小白00013 小时前
一篇讲清TCP的三次握手&四次挥手
服务器·网络·tcp/ip