php小編魚仔將為大家介紹如何讓一個實例物件在所有測試中可供使用。在進行單元測試時,我們常常需要建立一個實例對象,並在多個測試案例中重複使用。為了避免重複建立物件的麻煩,我們可以透過使用setUp()方法,在測試開始前建立實例對象,並將其儲存為類別的屬性。這樣,我們就可以在所有測試方法中都能夠存取到這個實例對象,從而提高程式碼的複用性和測試效率。接下來,讓我們一起來看具體的實作方法。
我正在為 http 服務編寫元件測試。我有一個測試運行程序類,其中包含一些有用的結構和共享函數(主要是“進行 http 呼叫”和“比較 json 結構”)。此測試運行器類別需要具有從 envvars 中提取的用於發送 http 呼叫的域。我不想每次進行 http 呼叫時都從環境變數中獲取域,而是更願意解析一次並將其設置在測試運行器類的實例中,然後讓該實例可用於我的所有測試函數。
假設測試函數的預期簽名是 func TestXxx(t *testing.T) {...}
我怎麼能讓這個實例可用於我的測試?
程式碼:
使用套件級變數來儲存值。初始化訪問器函數中的值。使用sync.Once確保初始化完成一次。
type Helper struct { message string } var ( helper *Helper helperOnce sync.Once ) func getHelper() *Helper { helperOnce.Do(func() { helper = &Helper{"Hello"} }) return helper } func TestFirst(t *testing.T) { h := getHelper() t.Log(h.message) } func TestSecond(t *testing.T) { h := getHelper() t.Log(h.message) }
https://www.php.cn/link/50d758cc9ab8bb51177b071d370caac2
#以上是如何讓一個實例物件可供所有測試使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!