91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Go語言測試框架怎樣編寫單元測試

小樊
83
2024-11-07 12:02:40
欄目: 編程語言

在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開頭的函數,并報告測試結果。

0
浦东新区| 库尔勒市| 福安市| 濮阳县| 凤凰县| 陆良县| 苏尼特右旗| 金山区| 时尚| 柞水县| 随州市| 通化县| 囊谦县| 仪陇县| 长岭县| 桑日县| 新巴尔虎右旗| 库伦旗| 金寨县| 稻城县| 温宿县| 华安县| 桃江县| 桑植县| 凤阳县| 建湖县| 凉城县| 巴马| 陕西省| 井研县| 沂南县| 克山县| 台东市| 高州市| 依兰县| 南宁市| 青冈县| 什邡市| 夏津县| 西充县| 枣强县|