2017-12-18 407 views
0

我在Golang中還是個新手。對於如何在Go測試文件中有效創建多個httptest.NewRequest,你有什麼想法嗎?通常我會發起一個新的變量two創建新的請求。Go Test中的多個httptest.NewRequest與不同的條件

例如:

r1 := httptest.NewRequest("GET", url, nil) 
r1.Header.Add("Accept-Language", "id") 
r1.AddCookie(&cookie) 

r2 := httptest.NewRequest("GET", url, nil) 
r1.Header.Add("Accept-Language", "id") 

所以我要創建2個不同的要求,其實我已經開始2個可變,以產生新的要求。我也使用測試表,所以在第一次測試運行後我無法添加cookie。

回答

3

沒有理由優化性能測試,因爲測試不會被編譯到您的應用程序中,並且它們不會與您的應用程序一起運行;只是不要做「毫無意義」的緩慢的事情。他們運行「離線」來驗證您的應用程序的正確性,因此測試的性能無處不在。

因此,編寫測試在源代碼中乾淨和短小。

但是他這樣說,你可以創建一個效用函數來創建和設置類似的要求,例如:

func newRequest(url string) *http.Request { 
    r := httptest.NewRequest("GET", url, nil) 
    r.Header.Add("Accept-Language", "id") 
    return r 
} 

,並用它來重建你的例子:

r1 := newRequest(url) 
r1.AddCookie(&cookie) 

r2 := newRequest(url) 
+0

好感謝這個建議,我也在考慮爲重複測試創建一個小函數。 :) – fauzanrazandi