程式設計并不容易;即使是最好的程式員也不可能寫出每次都能完全按預期工作的程式。是以,軟體開發過程中的一個重要部分就是測試。為我們的代碼編寫測試是保證品質和提高可靠性的好方法。
Go包括一個特殊的程式,可以使編寫測試更容易,是以讓我們為上一章做的包建立一些測試,我們在上一章中制作了一個包。在第11章的數學檔案夾中 第11章中的數學檔案夾中,建立一個名為
math_test.go
的新檔案。包含以下内容:
package math
import "testing"
func TestAverage(t *tesing.T) {
var v float64
v = Average([]float64{1,2})
if v != 1.5 {
t.Error("Expected 1.5, got", v)
}
}
然後運作指令:
go test
go test
指令将在目前檔案夾的任何一個檔案中尋找任何測試并運作它們。檔案中的任何測試并運作它們。測試是 識别的方法是以Test字樣開始一個函數 并接受一個
*testing.T
類型的參數。本例中,由于我們正在測試Average函數,我們将測試函數命名為
TestAverage
。
λ go test
PASS
ok sort.go 0.147s
package math
import "testing"
type testpair struct {
values []float64
average float64
}
var tests = []testpair{
{ []float64{1,2}, 1.5 },
{ []float64{1,1,1,1,1,1}, 1 },
{ []float64{-1,1}, 0 },
}
func TestAverage(t *testing.T) {
for _, pair := range tests {
v := Average(pair.values)
if v != pair.average {
t.Error(
"For", pair.values,
"expected", pair.average,
"got", v,
)
}
}
}