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

分类: 计算机技术
推荐阅读:
Linux挂载一个临时的RAM分区 在Linux下,你可以将RAM当作文件系统使用,这比在Windows方便的多,使用RAM作为文件系统,其读写速度要比磁盘快得多;一条命令即可实现:挂载一个临时的RAM分区,分配指定大小的RAM空间来作为文件系统。
python bin()函数详细教程 bin()函数将一个整数转换成前缀为”0b“的二进制字符串形式,如果参数不是int对象,那它需要定义__index__()方法并返回一个整数;
MIPS汇编语言教程 MIPS(Microprocessor without Interlocked Pipeline Stages)是一种基于RISC(Reduced Instruction Set Computer,精简指令集计算机)体系结构的微处理器架构。MIPS的设计理念是简化指令集,减少指令执行时间和硬件开销,提高处理器性能和效率。
C语言获取整行输入的多种方法 在C语言中,有多种方法可以实现从标准输入流(stdin)中读取整行输入;最常见的方法是使用例如fgets()、scanf()、getchar()这些函数;
如何删除一个已发布的crate 实际上,我们可以联系crates.io的技术支持团队,要求删除一些没有意义的crate,这些crate通常没人使用,不包含有意义的代码;
PySide6 设置按钮(QPushButton)是否可点击(禁用) QPushButton 类有一个名为 enabled 的属性,它用于控制按钮的可用状态。当按钮可用时,用户可以与之交互,点击它执行操作。当按钮不可用时,用户无法与之交互,点击它也不会触发点击事件。