为什么我在 Go 单元测试中不使用第三方断言库

主要观点:Go 自带内置单元测试框架,第三方断言库随之出现,后 Go 泛型时代可直接写辅助函数。
关键信息:

  • Go 标准库中testing包有内置测试框架,如示例代码add包的测试。
  • 第三方流行断言库为testify,但作者认为显式检查足够,写多了测试会觉得模板啰嗦。
  • 利用泛型可直接写辅助函数Equal,如assert.Equal(t, Add(1, 2), 4),更简洁。
  • 测试失败时输出错误信息,配合好的编辑器可显示行号,方便查看。
  • API 设计方面,函数签名重要,将实际值放首位,期望值放第二位,可通过字符串快照测试复杂数据。
    重要细节:
  • 示例代码展示了基本的测试函数写法和辅助函数Equal的实现。
  • 强调错误消息布局能帮助用户了解如何调用辅助函数。
  • 结论是利用 Go 泛型写测试断言辅助函数很简单,能满足 99%的 Go 单元测试需求。
阅读 8
0 条评论