go学习笔记-程序测试

程序测试

测试是一个可重复的过程,它验证某个东西是否按预期工作。一般通过 go test 进行测试,步骤如下

首先,是我们的文件名。Go 要求所有的测试都在以 _test.go 结尾的文件中。这使得我们在检查另一个 package 包的源代码时,确定哪些文件是测试和哪些文件实现功能非常容易。

在看了文件名之后,我们可以直接跳转到代码中,将测试包导入。它为我们提供了一些类型 (如testing.T) ,这些类型提供常见功能,比如在测试失败时设置错误消息。

接下来,是编写测试函数。所有的测试都应该以 func TestXxx(*testing.T) 的格式来编写。其中 Xxx 可以是任何字符或数字,而第一个字符需要是大写字符或数字。(译注:一般,Xxx 就是被测试的函数名)

最后,如上所述,我们使用了测试函数中的参数 *tesing.T。如果我们没有得到预期的结果,我们使用它来设置一个错误,当我们运行测试时,该错误将显示在终端上。

package testing

func Sum(numbers []int) int {  
  sum := 0
  // 这个 bug 是故意的
  for _, n := range numbers {
    sum += n
  }
  return sum
}

接下来在同一个包中,创建一个名为 sum_test.go 的文件,并将下面的代码添加到其中。

package testing

import (  
  "fmt"
  "testing"
)

func TestSum(t *testing.T) {  
  numbers := []int{1, 2, 3, 4, 5}
  expected := 15
  actual := Sum(numbers)

  if actual != expected {
    t.Errorf("Expected the sum of %v to be %d but instead got %d!", numbers, expected, actual)
  }
}
现在我们要运行我们的测试,所以在终端中切换到 testing101 包所在目录,并使用下面的命令运行测试。

go test -v


你应该看到像这样的输出:

=== RUN TestSum
— PASS: TestSum (0.00s)
PASS
ok calhoun.io/testing101 0.005s

猜你喜欢

转载自www.cnblogs.com/SLchuck/p/9936929.html