天天看點

Go 入門很簡單:Go 測試

程式設計并不容易;即使是最好的程式員也不可能寫出每次都能完全按預期工作的程式。是以,軟體開發過程中的一個重要部分就是測試。為我們的代碼編寫測試是保證品質和提高可靠性的好方法。

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,
            )
        }
    }
}      

繼續閱讀