37 | 代码测试(下):Go 语言其他测试类型及 IAM 测试介绍
孔令飞
该思维导图由 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 文件中):
公开
同步至部落
取消
完成
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
《Go 语言项目开发实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(15)
- 最新
- 精选
- NULLgo1.18又新增了一种fuzzing测试 https://go.dev/doc/fuzz/
作者回复: 感谢分享
2022-08-05归属地:广东2 - 管清麟静态检查吧,不是竞态检查
作者回复: 是 竞态检查
2022-04-101 - 是在下输了在目录下执行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-262 - 倪昊老师请问单元测试一般对哪几部分代码做呢?控制层,service层,仓库层都要做吗?
作者回复: 都可以做的,但业务层会比较多些
2021-09-15 - i-neojos这篇文章实用性特别强,对测试平台很有参考意义2022-05-024
- NULLbouk/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-joke2022-08-06归属地:山东
- 💎A越到后面人越少2022-03-17
收起评论