0
我剛開始學習爲http請求編寫單元測試,我經歷了幾個博客,但我不明白如何使用銀杏編寫測試。如何使用銀杏對HTTP請求進行單元測試?
func getVolDetails(volName string, obj interface{}) error {
addr := os.Getenv("SOME_ADDR")
if addr == "" {
err := errors.New("SOME_ADDR environment variable not set")
fmt.Println(err)
return err
}
url := addr + "/path/to/somepage/" + volName
client := &http.Client{
Timeout: timeout,
}
resp, err := client.Get(url)
if resp != nil {
if resp.StatusCode == 500 {
fmt.Printf("VSM %s not found\n", volName)
return err
} else if resp.StatusCode == 503 {
fmt.Println("server not reachable")
return err
}
} else {
fmt.Println("server not reachable")
return err
}
if err != nil {
fmt.Println(err)
return err
}
defer resp.Body.Close()
return json.NewDecoder(resp.Body).Decode(obj)
}
// GetVolAnnotations gets annotations of volume
func GetVolAnnotations(volName string) (*Annotations, error) {
var volume Volume
var annotations Annotations
err := getVolDetails(volName, &volume)
if err != nil || volume.Metadata.Annotations == nil {
if volume.Status.Reason == "pending" {
fmt.Println("VSM status Unknown to server")
}
return nil, err
}
// Skipped some part,not required
}
我通過這個blog去了,它到底解釋了什麼是我的代碼需要,但它使用的測試包,我想實現這個用銀杏。
謝謝@Onsi,這段代碼有很多問題,稍後會解決。 –
這個拋出'parse 127.0.0.1:45023/path/to/somepage/VOLUME:URL中的第一個路徑段不能包含冒號'錯誤,有什麼可能。 –
啊對,我的壞。你需要假裝「http://」到'server.Addr()' –