2012-12-11 60 views
3

我有一個驗證,如果過程對init()設置特定的環境變量包,否則恐慌。驗證環境中的init()

我這樣做是爲了確保該方法是在啓動配置正確。

的問題是,這種做法是不是真的可測試(使用_test.go文件),因爲環境不測試套件存在。

解決此問題的最佳方法是什麼?

回答

3

你想能夠測試驗證,或者只是跳過它完全在測試文件?無論哪種方式都將使用相同的基本方法,即將驗證代碼分離到其自己的文件中,該文件在測試期間不會生成。如果您只想在測試過程中完全跳過驗證,請將整個init()函數放入該文件中。如果要測試驗證,只需使驗證代碼調用自己的填充以獲取環境值,然後將填充放入該非測試文件中,並將單獨的填充放置到僅在測試期間編譯的文件中。

您可以控制文件是否在文件頭使用build constraint測試版本。 IIRC,運行測試應用test約束,所以你可以檢查。

相關問題