go testing包 单元测试

在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、超类、抽象类等中的方法。

  • 单元测试就是软件开发中对最小单位进行正确性检验的测试工作。
  • 单元测试文件名必须以xxx_test.go命名
  • 方法必须是TestXxx开头,建议风格保持一致(驼峰或者下划线)
  • 方法参数必须 t *testing.T
  • 测试文件和被测试文件必须在一个包中

Go自带的testing包

testing 为 Go 语言 package 提供自动化测试的支持。通过 go test 命令,能够自动执行如下形式的任何函数:

func TestXxx(*testing.T)

注意:Xxx 可以是任何字母数字字符串,但是第一个字母不能是小写字母。

  在这些函数中,使用 ErrorFail 或相关方法来发出失败信号。

​ 要编写一个新的测试套件,需要创建一个名称以 _test.go 结尾的文件,该文件包含 TestXxx 函数,

如上所述。 将该文件放在与被测试文件相同的包中。该文件将被排除在正常的程序包之外,但在运行 go test 命令时将被包含。 有关详细信息,请运行 go help testgo help testflag 了解。

  • 文件目录
    • 测试文件和被测试文件必须在一个包中
      在这里插入图片描述
  • 被测试代码:
package fib

func Fib(n int) int {
	if n < 2 {
		return n
	}
	return Fib(n-1) + Fib(n-2)
}

  • 测试代码:
package fib

import "testing"

func TestFib(t *testing.T) {
	var (
		in       = 7
		expected = 13
	)
	actual := Fib(in)
	t.Log(actual)
	if actual != expected {
		t.Errorf("Fib(%d) = %d; expected %d", in, actual, expected)
	}
}

  • 执行:
go test fib_test.go fib.go
  • 结果:
ok      command-line-arguments  0.090s

testing包更多用法:https://books.studygolang.com/The-Golang-Standard-Library-by-Example/chapter09/09.1.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值