相信大家在寫測試時,都會需要啟動而外服務,像是 Redis 或 Postgres 等,而開始測試前會需要初始化資料庫連線,或者是準備測試資料,測試結束後就關閉資料庫連線,並且移除不必要的測試資料或檔案。在 Go 語言內開發者不用去依賴第三方的套件,透過內建的 TestMain
就可以非常輕鬆完成此事情。底下看看如何操作及使用。
整合 TestMain
Go 語言在測試套件內直接提供了 TestMain 函式,功能就是讓開發者可以在開始測試前準備環境 (setup) 或是測試結束後移除環境 (teardown)。底下看看正常執行範例
接著可以新增 setup()
及 teardown()
函式
|
|
最後執行 go test -v .
後可以看到底下結果
這是符合我們的需求,可以在任何測試前準備環境,結束後可以移除相關環境,底下就是初始化 Groutine Pool,結束後釋放連線。
|
|
單獨測試使用 Setup 及 Teardown
除了在整體
測試前及測試後需要使用外,開發者也可能有需求在測試子項目
(sub-testing) 上。直接看底下範例,測試使用者是否存在
|
|
接著新增 setupTest 函式
最後修改 t.Run
內容
|
|
整合 TestMain + Teardown
我們來將上述的案例整合一起使用,先寫一個簡單的 ToString 功能
接著寫測試
|
|
最後結果如下
|
|