測試打樁 Golang 編寫測試教程

2021-10-25 13:12:07 字數 1919 閱讀 3806

tdd軟體測試

在指定的條件下,操作程式,發現程式錯誤
單元測試

對軟體的組成單元進行測試,最小單位:函式

包含三個步驟:

指標:testing 庫的使用

// hello ...

func hello() string

// 傳統測試

func testhello(t *testing.t) else

want2 := "hello world"

if result == want2 else

}// **驅動測試: 使用匿名結構體,邏輯更清晰

func testhellowithtable(t *testing.t) ,

} for _, tt := range tests

})}}

執行:

// mode one 

go test // equal to : go test . 執行當前目錄下的測試檔案

// mode two

go test ./.. // 加上路徑引數,可以執行指定目錄下的測試檔案

樣本測試:

func examplehello()
testmain:

包的測試執行之前執行
func testmain(m *testing.m)
testing 包含下面幾種方法:

備註:覆蓋率:

go test -cover

go test -coverprofile=cover.out

go tool cover -html=cover.out -o coverage.html

第三方:goconvey

func testadd_two(t *testing.t) )

convey("-1 + 0", func() )

})}func testfloattostring_two(t *testing.t) )

})}goconvey // 啟動 web 介面

monkey 猴子補丁

// 函式

func main() ) (n int, err error) , len(a))

for i, v := range a

return fmt.fprintln(os.stdout, s...)

}) fmt.println("what the hell?") // what the *bleep*?

}// 方法

}// 過程

guard := patch(destroyresource, func(_ string) )

defer guard.unpatch()

使用思路,被測函式中需要使用的其他依賴函式,進行打樁處理。

sqlmock

對 sql 的執行過程進行打樁。

reference

C 單元測試 打樁測試

當構造測試用例的資料,是在函式內部被另乙個外部函式所使用時,我們需要忽略外部函式所帶來的影響。需要進行 打樁 舉乙個具體的例子 class datagetter bool datagetter run 比如要對run這個函式進行單元測試,它內部呼叫了ptr client getdata data 的...

Android測試教程 8 測試Service

android 測試框架也提供對service測試的支援,基本類為servicetestcase,因為service類通常假定和它是和client是分開使用的,因此你可以無需使用instrumentation 來測試service。當你設計乙個service時,你應該考慮測試用例中如何檢查servi...

Android測試教程 8 測試Service

android 測試框架也提供對service測試的支援,基本類為servicetestcase,因為service類通常假定和它是和client是分開使用的,因此你可以無需使用instrumentation 來測試service。當你設計乙個service時,你應該考慮測試用例中如何檢查servi...