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...