golang 测试

本文介绍了Go语言的测试原则,强调测试公共接口而非私有实现,并讲解了单元测试的预处理、后处理、报错处理、覆盖率、跳过测试、并行测试以及testify框架的使用。此外,还探讨了性能测试、模拟(mock)测试的方法,包括如何进行基准测试、调整性能测试参数以及如何利用mock进行测试。
摘要由CSDN通过智能技术生成

测试原则

  • 尽量只测试公有的接口,而非私有的实现
    • 避免测试和实现过于耦合,不利于后面的重构

单元测试

  • go test的参数
    • -v 获得详细信息
    • count 每个测试函数的重复执行的次数
      • -count=1 可以禁用测试缓存
    • -race 检测竞争
    • cpu使用的逻辑CPU数量
      • 模拟被测程序在计算能力不同计算机中的性能表现
    • run <regex>运行正则匹配的测试用例
      • 例如 -run ^Array 那么就执行包含有 Array 开头的函数
// 运行全部单元测试
go test -v -count=1 -race ./...

在这里插入图片描述
在这里插入图片描述

预处理和后处理

  • 通过 func TestMain(m *testing.M)函数实现
    • 一个包里只能有一个TestMain函数
  • 所有单元测试和基准测试开始前和结束后进行预处理和收尾
func TestMain(m *testing.M) {
   
	setUp() // 代表测试前要执行的代码
	code := m.Run()// 执行所有预设的单元测试,code为退出码
	tearDown() // 代表测试后执行的代码
	os.Exit(code)
} 

测试报错

  • t.Fail() 记录失败但不停止该测试用例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值