
相信大家在寫測試時,都會需要啟動而外服務,像是 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 功能
接著寫測試
| |
最後結果如下
| |
