golang學習筆記之單元測試和壓力測試


文件結構:

math.go:待測試的包

math_test.go:單元測試

bench_test.go:壓力測試

 

math.go

package main

func Add(a int, b int) int {
	return a + b
}

func Sub(a int, b int) int {
	return a - b
}

  

單元測試:

math_test.go

package main

import "testing"

func TestAdd(t *testing.T) {
	a := 10
	b := 20
	c := Add(a, b)
	if c != 30 {
		t.Fatalf("add func error, c = %d", c)
	}
	t.Logf("a = %d b = %d sum = %d\n", a, b, c)
}

func TestSub(t *testing.T) {
	a := 50
	b := 20
	c := Sub(a, b)
	if c != 30 {
		t.Fatalf("sub func error, c = %d", c)
	}
	t.Logf("a = %d b = %d sub = %d\n", a, b, c)
}

在文件所在的路徑下,命令行執行

//go test -v    顯示詳細過程,也可以配合-run使用
//go test -run TestAdd 只測試TestAdd方法
//go test -run TestSub 只測試TestSub方法
go test 

  

壓力測試:

bench_test.go

package main

import "testing"

//注意命名規范 Benchmark+首字母大寫的方法名 參數固定
func BenchmarkAdd(b *testing.B) {
	for i := 0; i < b.N; i++ {
		a := 10
		b := 20
		Add(a, b)
	}
}

//注意命名規范 Benchmark+首字母大寫的方法名 參數固定
func BenchmarkSub(b *testing.B) {
	for i := 0; i < b.N; i++ {
		a := 10
		b := 20
		Sub(a, b)
	}
}

  

在文件所在的路徑下,命令行執行

//go test -bench BenchmarkAdd 只壓測BenchmarkAdd方法
//go test -bench BenchmarkSub 只壓測BenchmarkSub方法
//go test -bench .    點表示測試該路徑下所有壓力測試
go test -bench .

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM