首发于:https://studygolang.com/articles/12682
表格驱动测试是一种编写易于扩展测试用例的测试方法。表格驱动测试在 Go 语言中很常见(并非唯一),以至于很多标准库1都有使用。表格驱动测试使用匿名结构体。
在这篇文章中我会告诉你如何编写表格驱动测试。继续使用 errline repo 这个项目,现在我们来为函数添加测试。函数用于给一个在调用位置添加文件名和行数的修饰。我们尤其需要测试其中计算文件的短名称的逻辑(以粗体表示部分)。最初的函数如下:
为了测试短文件名计算的逻辑更加简便,我们将这部分逻辑提取出来作为函数。代码现在变成这样:
通过重构代码使其便于测试是很常见的做法。
我们现在通过传递多个文件名参数来测试,验证其输出结果是否符合预期。
我们先从一个空的测试函数开始:
紧接着,我们引入一个包含字段和的匿名结构体(struct)。表示传递给的参数,则代表我们预期的返回结果。是包含多个这样结构体的一个数组。
有了这个,我们就能通过循环来实现我们的测试方法。
可以注意到,添加测试用例极其简单,只需在中添加项目即可。
这个方案可以扩展以适应于测试接受和返回多个参数的方法。
就这样了。
代码可以从 我的 github 获取。
上一教程 - 多态
下一教程 - go安装
via: https://golangbot.com/polymorphism/
作者:Viru
译者:alfred-zhong
校对:polaris1119
本文由 GCTT 原创编译,Go 中文网 荣誉推出
领取专属 10元无门槛券
私享最新 技术干货