• 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
    
  • 相关阅读:
    VirtualApp
    python安装包遇到问题解决
    NMS_非极大值抑制的作用
    解释残差结构的有效性
    使用tcpdump命令抓取sql
    linux进程绑定cpu内核
    查询表空间占用情况
    数据库表分区
    Windows下如何使用ab命令做并发测试
    TCP协议
  • 原文地址:https://www.cnblogs.com/SLchuck/p/9936929.html
Copyright © 2020-2023  润新知