本章会覆盖以下内容:
使用标准库进行模拟
使用Mockgen包
使用表驱动测试
使用第三方测试工具
模糊测试
行为驱动测试
介绍
本章与前面的章节有所不同,我们的目光将转向编写测试。Go语言提供了开箱即用的测试支持,使得monkey patching和模拟相对简单。
Go测试鼓励代码的结构化,特别是测试和模拟接口非常简单且对此给予了很好的支持。某些类型的代码可能更难以测试,例如,测试使用包级别全局变量的代码,未被抽象到接口的函数以及具有非导出变量或方法的结构可能很困难。本章将分享一些测试Go代码的思路。