Go 入门很简单:Go 测试
介绍
编程不易;即使是最好的程序员也无法编写每次都能完全按照预期工作的程序。因此,软件开发过程的一个重要部分是测试。为我们的代码编写测试是确保质量和提高可靠性的好方法。
Go 提供了 testing 包和 go test 工具帮助我们编写自动化测试。
单元测试是编写有原则的 Go 程序的一个重要部分。测试包提供了我们编写单元测试所需的工具,go test 命令可以运行测试。为了便于演示,这段代码是在包 main 中,但它可以是任何包。测试代码通常与它所测试的代码生活在同一个包里。
测试代码结构
Go 语言推荐测试文件和源代码文件放在一块,测试文件以 _test.go
结尾。比如,当前 package 有 average.go
一个文件,我们想测试 average.go
中的 Average
函数,那么应该新建 average_test.go
作为测试文件。
测试我们的代码
我们将测试这个整数最小值的简单实现。通常情况下,我们要测试的代码会在一个名为 intutils.go
的源文件中,而它的测试文件会被命名为``intutils_test.go` 。
通过编写一个名称以 Test 开头的函数来创建一个测试。
t.Error*
将报告测试失败但继续执行测试。t.Fatal*
将报告测试失败并立即停止测试。
编写测试可能是重复性的,所以使用表格驱动的风格是习惯性的,测试输入和预期输出被列在一个表格中,一个单一的循环走过它们并执行测试逻辑。
t.Run
可以运行 "子测试",每个表项都有一个。当执行go test -v
时,这些子测试会分别显示出来。
以粗略模式运行当前项目中的所有测试.
运行结果:
以上代码翻译自:https://gobyexample.com/testing
测试平均分代码
比如,我们的计算平均分的代码 average.go
可以这样写:
这是一种非常常见的设置测试的方法(丰富的例子可以在 Go 软件包的源代码中找到)。我们创建一个结构来代表函数的输入和输出。然后我们创建一个这些结构的列表(对)。然后我们循环浏览每一个结构并运行该函数。
版权声明: 本文为 InfoQ 作者【宇宙之一粟】的原创文章。
原文链接:【http://xie.infoq.cn/article/db3244537d3205e90ac556b0c】。文章转载请联系作者。
评论