首页主机资讯Go语言测试框架怎样编写单元测试

Go语言测试框架怎样编写单元测试

时间2025-09-25 02:39:04发布访客分类主机资讯浏览1259
导读:在Go语言中,我们可以使用内置的"testing"包来编写单元测试。下面是一个简单的示例,展示了如何编写一个名为calculator.go的包及其相应的单元测试。 首先,我们创建一个名为calculator.go的文件,其中包含一些基本的数...

在Go语言中,我们可以使用内置的"testing"包来编写单元测试。下面是一个简单的示例,展示了如何编写一个名为calculator.go的包及其相应的单元测试。

首先,我们创建一个名为calculator.go的文件,其中包含一些基本的数学函数:

package calculator

import "fmt"

// Add adds two integers and returns the result.
func Add(a, b int) int {

    return a + b
}


// Subtract subtracts two integers and returns the result.
func Subtract(a, b int) int {

    return a - b
}

接下来,我们创建一个名为calculator_test.go的文件,用于编写针对calculator包的单元测试:

package calculator

import (
	"testing"
)

func TestAdd(t *testing.T) {

	type args struct {

		a, b int
	}

	tests := []struct {

		name string
		args args
		want int
	}
{

		{
"Add positive numbers", args{
3, 5}
, 8}
,
		{
"Add negative numbers", args{
-3, -5}
, -8}
,
		{
"Add positive and negative numbers", args{
3, -5}
, -2}
,
	}


	for _, tt := range tests {

		t.Run(tt.name, func(t *testing.T) {
    
			if got := Add(tt.args.a, tt.args.b);
 got != tt.want {

				t.Errorf("Add() = %v, want %v", got, tt.want)
			}

		}
)
	}

}


func TestSubtract(t *testing.T) {

	type args struct {

		a, b int
	}

	tests := []struct {

		name string
		args args
		want int
	}
{

		{
"Subtract positive numbers", args{
7, 3}
, 4}
,
		{
"Subtract negative numbers", args{
-7, -3}
, -4}
,
		{
"Subtract positive and negative numbers", args{
7, -3}
, 10}
,
	}


	for _, tt := range tests {

		t.Run(tt.name, func(t *testing.T) {
    
			if got := Subtract(tt.args.a, tt.args.b);
 got != tt.want {

				t.Errorf("Subtract() = %v, want %v", got, tt.want)
			}

		}
)
	}

}
    

在这个示例中,我们为AddSubtract函数分别编写了测试用例。每个测试用例都包含一个名称、输入参数和期望的输出结果。我们使用t.Run来运行每个测试用例,并在测试失败时使用t.Errorf报告错误。

要运行测试,请在命令行中输入以下命令:

go test

这将运行所有以Test开头的函数,并报告测试结果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Go语言测试框架怎样编写单元测试
本文地址: https://pptw.com/jishu/706486.html
Go语言测试框架有哪些常见用法 Go语言测试框架如何选择

游客 回复需填写必要信息