TDD 流程有助於確保 Go 函數的正確性和行為文件。步驟:1) 編寫使用 go test 指令的測試,定義函數和測試案例。 2) 編寫滿足測試案例行為的函數程式碼。 3) 執行 go test 指令驗證函數是否符合預期。 4) 根據需要重複步驟 1-3,完善函數實作並完善測試案例,直到所有測試都能通過。
Golang 函數的TDD(測試驅動開發)流程
測試驅動開發(TDD) 是一種軟體開發過程,其中開發人員首先編寫測試,然後編寫滿足這些測試所需的程式碼。對於 Go 語言函數,TDD 流程可以幫助確保函數的正確性,並為其行為提供文件。
步驟
go test
指令建立一個測試文件,定義要測試的函數以及對應的測試用例。 package main import ( "testing" ) func TestAdd(t *testing.T) { tests := []struct { a, b int want int }{ {1, 2, 3}, {3, 4, 7}, } for _, tc := range tests { got := Add(tc.a, tc.b) if got != tc.want { t.Errorf("Add(%d, %d) = %d, want %d", tc.a, tc.b, got, tc.want) } } }
package main import "fmt" func Add(a, b int) int { return a + b } func main() { fmt.Println(Add(1, 2)) // 输出:3 }
go test
指令驗證函數是否符合預期。 $ go test ok test.go 0.000s
實戰案例
假設你想要實作一個 Golang 函數 isPrime
來決定一個數字是否為質數。 TDD 流程可以如下進行:
寫測試:
package main import ( "testing" ) func TestIsPrime(t *testing.T) { tests := []struct { n int prime bool }{ {1, false}, {2, true}, {3, true}, {4, false}, {19, true}, {100, false}, } for _, tc := range tests { got := IsPrime(tc.n) if got != tc.prime { t.Errorf("IsPrime(%d) = %t, want %t", tc.n, got, tc.prime) } } }
編寫程式碼:
package main import "math" func IsPrime(n int) bool { if n <= 1 { return false } for i := 2; i <= int(math.Sqrt(float64(n))); i++ { if n%i == 0 { return false } } return true } func main() { fmt.Println(IsPrime(19)) // 输出:true }
執行測試:
$ go test ok test.go 0.000s
以上是golang函數的測試驅動開發流程如何實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!