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

分类: 计算机技术
推荐阅读:
SQL基本语法 SQL遵循一些独特的规则,基本语法如下:SQL不区分大小写。但我们通常将SQL关键字以大写形式编写,以便于区分;
Linux终端显示文件中的特定行 在Linux系统下,你如果想在终端显示文件中的指定行,那么你只需这一条命令:
Python实现字符串大小写转换 你可能会使用字符串的upper()方法将字符串中的字母全部转换成大写,或使用lower()方法将字符串中的字母全部转换成小写;那如何将字符串中的大写转换成小写、小写转换从大写呢?本文将使用Python实现这一功能;
如何将Rust更新到最新版 Rust每隔一段时间就会有新的版本,若要将已安装的Rust更新到最新版,并不用先卸载旧的版本,只需要使用 rustup 工具;
Rust获取操作系统类型 在Rust编程语言中,你可以使用标准库中的std::env模块来获取操作系统类型。具体来说,你可以使用std::env::consts::OS来获取操作系统类型的字符串表示。
Rust cfg宏的用法和示例 在Rust中,cfg宏用于条件编译,允许根据不同的条件在编译代码时选择性地包含或排除特定的代码块;这对于处理不同平台、操作系统、编译器或其他环境变量的情况非常有用。