12-測試
程式設計並不容易,即使是最好的程式設計師,也無法在想寫程式時就可以寫出來。因此,軟體開發過程中的一個重點就是測試。為自己的程式碼設計測試程式在確保程式的品質與可靠度上,是一個很好的方式。
Go 語言有一個特殊的程式,可以比較容易地設計測試程式。所以我們在上一章用這個 package 建立了一些測試程式。在 math
資料夾中,chapter11
建立了一個檔名為 math_test.go
的新檔案,內容如下:
執行這個指令:
你應該會看到下列的執行結果:
go test
指令會尋找目前資料夾中的任何測試程式,並且執行它們。測試程式的辨別方式是有一個 Test
起始函式,並有一個 *testing.T
型別的參數。在我們的範例中,因為我們正在測試 Average
函式,所以我們將測試函式命名為 TestAverage
。
只要我們完成了測試函式的設定,我們就可以設計測試程式來測試程式碼。以此例而言,我們知道 [1,2]
的平均值應該是 1.5
,所以我們就可以這樣檢查。測試不同的數字組合可能是個好主意,所以我們稍微修改我們的測試程式:
這是常見的建立測試方法(可以在 Go 語言的 packages 程式原始碼中找到大量的範例)。我們建立一個 struct
來儲存函式的輸入與輸出。然後我們建立一串 struct
(成對的)。再來我們透過迴圈處理每一組,並執行函式。
問題
設計一個好的測試套件並不是每次都很簡單,不過設計測試程式的過程中,通常會遭遇比初次了解時更多的問題。例如:在我們的
Average
函式中,若你傳遞一個空的串列 ([]float64{}
) 會發生什麼事呢?就這個案例來說,我們如何修改函式,使得函式會傳回 0 呢?幫你在前幾章寫的
Min
與Max
函式設計一些測試程式。
Last updated