Golang中如何使用go test进行单元测试

单元测试的意义在这里就不多说了;本文将示范如何在Go语言环境下使用go test进行简单的单元测试。

先看一段代码:

package package1
 
//MyFunc1 相减两个数
func MyFunc1(a, b int) int {
return a - b
}

package1 为自定义的包名称 ,而MyFunc1为自定义的函数,其作用为对两个传入的数进行减法操作。函数的功能非常简单,如果传入的值在有效范围(int类型,且数值有效),就不会发生错误。

先不管这函数多简单,假设其非常复杂,我们需要对其进行测试,保证其总能给我们正确的结果。

使用go test工具进行测试

将上面的代码保存为 myPackage.go 文件,并存放在 myPackage目录下。假设定义的主模块名称为myGo,那么这个模块的用法为:

package main
 
import (
"fmt"
package1 "myGo/myPackage"
)
 
func main() {
 
fmt.Println(package1.MyFunc1(2, 1))
 
}

怎么对这个单元进行测试呢?

回到myPackage目录,创建一个新的文件,myPackage_test.go

写入以下内容:

package package1
 
import "testing"
 
func TestMypackage1(t *testing.T) {
value := MyFunc1(1, 1)
if value != 0 {
t.Error("MyFunc1() 失败. 返回值为 ", value, "正确的值应为 0")
}
}

go test工具会自动运行_test.go这类文件中以Test开头的函数。注意,该函数的命名格式为Test+第一个字母必须为大写的名称。

以本文为例,输入命令:

go test myGo/myPackage

注意这里的myGo/myPackage,myGo并不是目录名,而是主模块名,在go.mod中定义:

//go.mod
module myGo

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1492.html

分类: 计算机技术
推荐阅读:
堆段和栈段的区别 堆段(Heap Segment)和栈段(Stack Segment)都是在程序运行时分配内存的区域,但它们有以下不同之处:
SEO基础:TKD是什么意思? TKD其实就是HTML语言中title、keywords、description的缩写;
Rust unreachable宏的用法和示例 unreachable是Rust中的一个宏,它用于标记代码中的一个不可能被执行的分支;这个宏告诉编译器在这个分支上的代码永远不会被执行到;这对于表明某些情况下的代码不可达是很有用的。
Golang读取INI配置文件到结构体 本文将介绍Golang使用github.com/go-ini/ini包读取ini配置文件到结构体的方法。
Python locals()函数 在 Python 中,locals() 是一个内置函数,用于返回当前作用域中的所有局部变量的字典。在函数内部,locals() 返回该函数的局部变量。在模块级别上,locals() 返回全局变量。
如何隐藏WordPress后台地址,保护好你的菊花 默认情况下,Wordpress 的默认后台地址为:http://yourdomain.com/wp-login.php,黑客可以通过这个页面进行暴力穷尽破解,直到破解出你的密码。不论你的密码强度如何,这紧会浪费服务器资源,且网站也会留下安全隐患。