在測試 Go 時,跨包共享設(shè)置和拆卸方法是一個常見的問題。php小編魚仔將為您解答這個問題。在Go語言中,可以使用`flag`包來設(shè)置和獲取命令行參數(shù)。通過在測試文件中使用`flag.Parse()`函數(shù),可以將命令行參數(shù)解析并設(shè)置到對應(yīng)的變量中。對于需要共享設(shè)置的測試場景,可以在測試文件中設(shè)置全局變量,并在各個測試函數(shù)中使用。當(dāng)測試結(jié)束后,可以在`TestMain`函數(shù)中進行拆卸操作,恢復(fù)原來的設(shè)置狀態(tài)。這樣就可以實現(xiàn)跨包共享設(shè)置和拆卸的方法。
問題內(nèi)容
假設(shè)我有兩個軟件包 foo
和 bar
。每個包都有一個文件和一個測試文件:
foo ---widget.go ---widget_test.go bar ---wingding.go ---wingding_test.go
登錄后復(fù)制
現(xiàn)在對于這兩個測試(widget_test.go 和 wingding_test.go),我想分享一些設(shè)置代碼。我知道我可以將此代碼放入 main_test.go 內(nèi)的每個包中。但我顯然不想在兩個地方復(fù)制/粘貼代碼。那么我可以把這段代碼放在哪里以便在包之間共享呢?
解決方法
將其放入 foo
和 bar
在測試中導(dǎo)入的另一個包 baz
中。我們在測試中將其用于數(shù)據(jù)庫設(shè)置和拆卸代碼。