首页 > 其他分享 >Go语言精进之路读书笔记第40条——理解包内测试与包外测试的差别

Go语言精进之路读书笔记第40条——理解包内测试与包外测试的差别

时间:2024-02-29 14:00:31浏览次数:27  
标签:读书笔记 包内 测试代码 go 测试 test 包外

测试代码存放在包含TestXxx函数的以*_test.go文件名结尾的文件中

40.1 官方文档的“自相矛盾”

包内测试:测试代码放在与被测包同名的包中

包外测试:测试代码放在名为被测包包名+"_test"的包中

40.2 包内测试与包外测试

包内测试:

  • 优:白盒测试,高覆盖率
  • 缺:测试代码自身需要经常性的维护;容易有包循环引用的硬伤,例如strings包和testing包

包外测试:

  • 优:黑盒测试,测试代码健壮,不需要经常调整逻辑;无循环引用的问题
  • 缺:存在测试盲区,覆盖率低(可通过安插后门的方式解决)

安插后门:

  • 例子:,$GOROOT/src/fmt/export_test.go$GOROOT/src/strings/export_test.go
  • export_test.go文件仅在go test阶段与被测试包(fmt)一并被构建入最终的测试二进制文件中

结论:

  • 优先使用包外测试
  • 包外测试更适合编写偏向集成测试的用例,包内测试可以聚焦于验证内部逻辑的正确性

标签:读书笔记,包内,测试代码,go,测试,test,包外
From: https://www.cnblogs.com/brynchen/p/18043551

相关文章

  • 系统科学方法概论第五章读书笔记
    这一章我深入探讨了自组织系统法的基本理念和应用。第五章节的核心在于解释自组织系统法的概念、特征以及其在各类系统中的实际作用。自组织系统法源自于对自然界和社会现象中的自组织行为的观察和研究。一个自组织系统是能够在没有外部指令或明显控制下自发形成有序结构或模式的......
  • 系统科学方法概论第一章读书笔记
    第一章节的核心在于阐述系统方法的重要性和基本思想,以及如何将其应用于实际问题的解决中。系统方法是一种研究复杂问题的方法,它强调从整体上理解和解决问题,而不是仅仅关注局部或个别现象。在实际生活和工作中,我们经常遇到各种复杂的问题,这些问题往往涉及到许多相互关联的因素和变......
  • 系统科学方法概论第二章读书笔记
    第二章节的核心在于阐述系统工程方法的基本概念、特点和实施步骤,以及如何将其应用于实际问题的解决中。系统工程方法是一种综合性的方法,它结合了系统分析、系统设计和系统管理等多个方面的知识和技术。通过系统工程方法,我们可以对复杂系统进行有效的建模、分析、设计和控制,从而实......
  • 系统科学方法概论第三章读书笔记
    第三章节让我深刻理解了信息方法的基本概念、特点和作用,以及如何将其应用于实际问题的解决中。信息方法是一种研究信息的生成、传输、处理和利用的规律和方法。在系统科学中,信息方法具有重要的作用,因为系统的本质是信息的流动和处理。通过运用信息方法,我们可以更好地理解和控制系......
  • 系统科学方法概论第四章读书笔记
    控制方法是一种通过施加外部作用来调整和控制系统行为的方法。在系统科学中,控制方法具有重要的作用,因为系统的行为往往是复杂且难以预测的。通过运用控制方法,我们可以使系统保持稳定、可靠和高效,从而实现系统的目标。控制方法可以分为开环控制和闭环控制两种类型。开环控制是指根......
  • 2.27开学测试代码
    packageServlet;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;im......
  • NVME FPGA IP测试记录
    这里涉及商业IP的部分文字资料,如有侵权,请联系删除。当前只说明基础测试,更多测试待后续更新。NVMEHOSTIPIP特性范例截图ZCU106测试使用ZCU106HPC0接口+FMCDriveNVME接口子卡,NVME使用三星980测试日志EnteringMainStartinginitialization...Expecting1dr......
  • 基于MATLAB深度学习工具箱的CNN卷积神经网络训练和测试
    一、理论基础    为了尽可能详细地介绍基于MATLAB深度学习工具箱的CNN卷积神经网络训练和测试,本文将按照以下内容进行说明:CNN卷积神经网络的基本原理深度学习工具箱的基本介绍CNN卷积神经网络训练的步骤和方法CNN卷积神经网络的优缺点1.CNN卷积神经网络的基本原理 ......
  • 《系统科学方法概论》第三章读书笔记
    读完《系统科学方法概论》的第三章后,我对系统科学方法有了更深入的理解和认识。这一章介绍了系统分析方法,让我明白了如何从整体的角度去理解和研究复杂的系统。系统分析强调对系统的各个组成部分进行全面的考察,并考虑它们之间的相互关系。这种方法帮助我更好地把握系统的本质和特......
  • 《系统科学方法概论》第四章读书笔记
    读完《系统科学方法概论》的第四章后,我对系统分析方法有了更深入的理解和认识。这一章详细介绍了系统分析的概念、步骤和方法,让我明白了系统分析在解决复杂问题中的重要性。通过对系统的各个组成部分进行分解和分析,我们可以更好地理解系统的整体行为和特性。我认识到系统分析需......