Go 入门很简单:Go 测试
  TEZNKK3IfmPf 2023年11月14日 62 0

编程并不容易;即使是最好的程序员也不可能写出每次都能完全按预期工作的程序。因此,软件开发过程中的一个重要部分就是测试。为我们的代码编写测试是保证质量和提高可靠性的好方法。

Go包括一个特殊的程序,可以使编写测试更容易,所以让我们为上一章做的包创建一些测试,我们在上一章中制作了一个包。在第11章的数学文件夹中 第11章中的数学文件夹中,创建一个名为 ​​math_test.go​​的新文件。包含以下内容:


package math


import "testing"


func TestAverage(t *tesing.T) {
var v float64
v = Average([]float64{1,2})
if v != 1.5 {
t.Error("Expected 1.5, got", v)
    }
}

然后运行命令:

go test

​go test​​命令将在当前文件夹的任何一个文件中寻找任何测试并运行它们。文件中的任何测试并运行它们。测试是 识别的方法是以Test字样开始一个函数 并接受一个​​*testing.T​​ 类型的参数。本例中,由于我们正在测试Average函数,我们将测试函数命名为​​TestAverage​​。


λ go test
PASS
ok sort.go 0.147s

一旦我们有了测试功能的设置,我们就编写测试使用我们要测试的代码。在这个例子中,我们知道[1,2]的平均数应该是1.5,所以这就是我们的检查。可能是一个好主意,测试许多不同的数字的组合,所以让我们稍微改变一下我们的测试程序:

package math
import "testing"
type testpair struct {
    values []float64
    average float64
}
var tests = []testpair{
    { []float64{1,2}, 1.5 },
    { []float64{1,1,1,1,1,1}, 1 },
    { []float64{-1,1}, 0 },
}

func TestAverage(t *testing.T) {
    for _, pair := range tests {
        v := Average(pair.values)
        if v != pair.average {
            t.Error(
            "For", pair.values,
            "expected", pair.average,
            "got", v,
            )
        }
    }
}

这是一种非常常见的设置测试的方法(丰富的例子可以在Go软件包的源代码中找到)。我们创建一个结构来表示函数的输入和输出。然后我们 创建一个这些结构的列表(对)。然后我们循环一遍每一个结构并运行该函数。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月15日   28   0   0 go定时器
  TEZNKK3IfmPf   2023年11月14日   32   0   0 go变量
  TEZNKK3IfmPf   2023年11月14日   21   0   0 测试
  TEZNKK3IfmPf   2023年11月14日   36   0   0 字符串go
  TEZNKK3IfmPf   2023年11月14日   30   0   0 go函数
  TEZNKK3IfmPf   2023年11月15日   24   0   0 go
TEZNKK3IfmPf