Go 语言项目开发实战
孔令飞
腾讯云专家工程师,前 Red Hat、联想云工程师
41031 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

37 | 代码测试(下):Go 语言其他测试类型及 IAM 测试介绍

Mock工具
测试框架
测试案例分享
运行测试用例
大型示例
示例测试命名规范
示例测试
课后习题
总结
其他测试工具/包
IAM项目测试实战
测试覆盖率
何时编写和执行单元测试用例
Fake测试
Mock测试
TestMain函数
性能测试
单元测试
测试方法

该思维导图由 AI 生成,仅供参考

你好,我是孔令飞。
上一讲,我介绍了 Go 中的两类测试:单元测试和性能测试。在 Go 中,还有一些其他的测试类型和测试方法,值得我们去了解和掌握。此外,IAM 项目也编写了大量测试用例,这些测试用例使用了不同的编写方法,你可以通过学习 IAM 的测试用例来验证你学到的测试知识。
今天,我就来介绍下 Go 语言中的其他测试类型:示例测试、TestMain 函数、Mock 测试、Fake 测试等,并且介绍下 IAM 项目是如何编写和运行测试用例的。

示例测试

示例测试以Example开头,没有输入和返回参数,通常保存在example_test.go文件中。示例测试可能包含以Output:或者Unordered output:开头的注释,这些注释放在函数的结尾部分。Unordered output:开头的注释会忽略输出行的顺序。
执行go test命令时,会执行这些示例测试,并且 go test 会将示例测试输出到标准输出的内容,跟注释作对比(比较时将忽略行前后的空格)。如果相等,则示例测试通过测试;如果不相等,则示例测试不通过测试。下面是一个示例测试(位于 example_test.go 文件中):
func ExampleMax() {
fmt.Println(Max(1, 2))
// Output:
// 2
}
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Go语言中的测试方法及其应用场景,以及如何使用Mock工具进行单元测试。文章首先介绍了Go语言中的四种测试类型:单元测试、性能测试、示例测试和TestMain函数,并详细讲解了IAM项目中的测试用例编写方法。其中,示例测试以`Example`开头,用于验证函数的输出;TestMain函数用于在测试前进行准备工作和测试后进行清理工作;Mock测试通过模拟外部依赖来实现单元测试。文章还介绍了GoMock框架的安装和使用方法,以及mockgen工具的使用方法。读者可以了解如何使用Mock代码编写单元测试用例,包括创建Mock控制器、调用Mock对象、断言方法的使用以及指定入参和返回值的方法。此外,文章还介绍了Fake测试和何时编写和执行单元测试用例的最佳实践。文章内容丰富,涵盖了Go语言测试的基础知识和实际应用,对于Go语言开发者具有很高的参考价值。文章还分享了IAM项目的测试实战,包括如何执行测试用例以及IAM项目的测试案例。最后,文章还分享了Go项目测试中常用的工具/包,包括测试框架和Mock工具。文章还介绍了一些优秀的测试框架、测试工具、Mock工具以及测试技巧,为读者提供了更多的学习和探索空间。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(15)

  • 最新
  • 精选
  • NULL
    go1.18又新增了一种fuzzing测试 https://go.dev/doc/fuzz/

    作者回复: 感谢分享

    2022-08-05归属地:广东
    2
  • 管清麟
    静态检查吧,不是竞态检查

    作者回复: 是 竞态检查

    2022-04-10
    1
  • 是在下输了
    在目录下执行go test -coverprofile=coverage.out 没有生成 coverage.out 文件

    作者回复: 是不是当前目录,没有*_test.go文件?

    2022-08-07归属地:广东
  • 宙斯
    fake测试和mock测试有什么区别吗?感觉是一样的东西,没看出侧重点

    作者回复: fake测试是模拟的数据,具有业务逻辑,是真实的模拟行为。 mock只是模拟了输出。

    2022-06-29归属地:广东
  • ~\(≧▽≦)/~
    老师,调用第三方rest api接口需要用到mock进行测试吗

    作者回复: 可以使用httpmock进行测试。 但一般建议通过接口进行测试

    2022-01-04
  • return
    老师,请教一下,一般对 rest api 的测试 应该怎么做比较好, 我们现在是 按照写单元测试的方式, 测试函数内 调用http请求,判断response。 不知道有没有更好的方式。

    作者回复: 差不多就是这么来测试的

    2021-12-26
    2
  • 倪昊
    老师请问单元测试一般对哪几部分代码做呢?控制层,service层,仓库层都要做吗?

    作者回复: 都可以做的,但业务层会比较多些

    2021-09-15
  • i-neojos
    这篇文章实用性特别强,对测试平台很有参考意义
    2022-05-02
    4
  • NULL
    bouk/monkey许可证好像有问题 也可以看看这个 https://github.com/agiledragon/gomonkey agiledragon/gomonkey被bouk/monkey的作者推荐过, 见https://esoteric.codes/blog/bouk-monkey-satirical-code-used-by-people-who-dont-get-the-joke
    2022-08-06归属地:山东
  • 💎A
    越到后面人越少
    2022-03-17
收起评论
显示
设置
留言
15
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部