Golang单元测试坑盘点

最近在公司写单元测试,发现了不少坑。例如:monkey不支持inline函数,vscode单测有缓存,convey对切片、map等比较不可以直接使用类似于==进行。本节呢,将来复盘一下我在实际过程中踩的一些坑,在此记录,防止下次再出问题,希望对大家有所帮助,欢迎留言与我一起交流。

1.monkey失效

在进行monkey单元测试时,发现简单的函数测试失效。

查阅文档发现,monkey不支持inline函数。

两种解决办法:

  • 添加编译参数

-gcflags=all=-l
  • 禁止内联

//go:noinline

2.vscode单元测试失效

根据提示有cache,我们需要关闭cache。

添加编译参数:

-count=1

3.convey

像切片、map等使用convey进行比较时,容易断言失败。

例如:如果用ShouldEqual将失败。原因在于slice不支持==比较,要比较需要采用ShouldResemble。

convey.So(arr, convey.ShouldEqual, target)

应该改为:

convey.So(arr, convey.ShouldResemble, target)

Golang单元测试坑盘点相关推荐

  1. ​手把手教你如何进行 Golang 单元测试

    作者:stevennzhou,腾讯 PCG 前端开发工程师 本篇是对单元测试的一个总结,通过完整的单元测试手把手教学,能够让刚接触单元测试的开发者从整体上了解一个单元测试编写的全过程.最终通过两个问题 ...

  2. Golang单元测试与覆盖率

    1 概述 C/C++和Java(以及大多数的主流编程语言)都有自己成熟的单元测试框架,前者如Check,后者如JUnit,但这些编程框架本质上仍是第三方产品,为了执行单元测试,我们不得不从头开始搭建测 ...

  3. VSCode配置Golang单元测试实例

    目录 前言 正文 一.导入testing工具包 二.单元测试文件命名规范 三.单元测试方法命名规范 四.执行单元测试 结尾 前言 说到代码的健壮性,单元测试是少不了的,基本上所有语言都有自己的单元测试 ...

  4. Golang 单元测试:有哪些误区和实践?

    简介:单元测试作为开发的有力武器,应该在软件开发的各个流程中发挥它的价值.原始的开发模式(开发完毕,交给测试团队进行端到端测试)的流程,应该逐步向 devops 的方向转变.本文是一个转型的具体实践过 ...

  5. golang 单元测试

    单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率.所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解. go 语言 ...

  6. Golang 单元测试详尽指引

    文末有彩蛋. 作者:yukkizhang,腾讯 CSIG 专项技术测试工程师 本篇文章站在测试的角度,旨在给行业平台乃至其他团队的开发同学,进行一定程度的单元测试指引,让其能够快速的明确单元测试的方式 ...

  7. golang 单元测试和性能测试

    单元测试 单元测试(Unit Tests, UT) 是一个优秀项目不可或缺的一部分,特别是在一些频繁变动和多人合作开发的项目中尤为重要.你或多或少都会有因为自己的提交,导致应用挂掉或服务宕机的经历.比 ...

  8. 一文说尽Golang单元测试实战的那些事儿

    导语 | 单元测试,通常是单独测试一个方法.类或函数,让开发者确信自己的代码在按预期运行,为确保代码可以测试且测试易于维护.腾讯后台开发工程师张力结合了公司级漏洞扫描系统洞犀在DevOps上探索的经验 ...

  9. GoLang 单元测试打桩和 mock

    目录 什么是 mock 变量打桩 接口方法/Redis 函数/方法打桩 包函数 成员方法 MySQL sqlmock sqlite mock gorm http mock 源码地址 单测基础 什么是 ...

最新文章

  1. R语言基于遗传算法(Genetic Algorithm)进行特征筛选(feature selection)
  2. 美国中央情报局CIA正通过开发人工智能项目,收集与检索社交媒体情报
  3. 微信服务通知消息找回_第三方平台微信服务号模板消息怎么发送
  4. 玩转Autorun.inf
  5. 抗锯齿_最好的抗锯齿,画质保留提升帧数
  6. 神经网络测试时间计算机,卷积神经网络的时代到此结束了?
  7. Linux网络编程(一):Linux内核
  8. 28 | 读写分离有哪些坑?
  9. 套接字初始化失败问题
  10. 华人微型计算机之父,计算机之父是谁?
  11. debian8安装Odoo中的Barcode Scanner Hardware Driver模块时,提示没有evdev
  12. android的fragment讲解
  13. [C++] C/C++结构体的区别
  14. php709,深度爆料评测bt2020与bt709有什么区别?哪个好?良心点评实际情况
  15. ubnt路由器虚拟服务器,UBNT UAP系列 Wi-Fi设置教程 装修必看
  16. CV控制输出的图片大小
  17. Android三级缓存机制工具类的实现
  18. css 商城 两列_你需掌握的CSS知识都在这了(长文建议收藏,文末有福利)
  19. js和安卓app互相传数据(安卓app页面集成html页面,获取数据并给安卓返回数据)
  20. 关于微信小程序的多选和全选实现

热门文章

  1. 原生体验!老牌 RSS 阅读器:NetNewsWire
  2. RSS新闻阅读器的设计与实现
  3. 武汉理工智能车工作室2022招新视频
  4. 两行代码教你搞定Windows系统微信双开
  5. Excel一个工作表复制到另一个工作簿开头的位置
  6. 轨迹球经历 2017-6
  7. 第十五章 使用管理门户SQL接口(一)
  8. CORS 完全手册之 CORS 详解
  9. 【论文深度研读报告】MuZero算法过程详解
  10. 中科方德操作系统虚拟机安装步骤备忘