dongyingdao8867
2019-03-28 12:43
浏览 210
已采纳

Golang-在方法中测试HTTP请求

I'm a little confused when it comes to testing in Go. I've read that abstracting to interfaces should be the ideal way to go in some cases, in other cases I see TestTables. I'm not too sure when to apply either one. For instance, how would one go about testing the function below.

type User{
    Name string           `json:"name"`
    IsMarried bool        `json:"isMarried"`
    Nicknames []string    `json:"nicknames"`
}

func (u *User) Create() (*http.Response, error) {
    data, err := json.Marshal(u)
    if err != nil {
        return nil, err
    }
    urll := EndpointBase+"/users"

    req, err := http.NewRequest(http.MethodPost, urll,  bytes.NewReader(data))
    if err != nil {
        return nil, err
    }

    resp, err := auth.Session.Client.Do(req)
    if err != nil {
        return nil, err
    }
    return resp, nil
}

图片转代码服务由CSDN问答提供 功能建议

在Go中进行测试时,我有些困惑。 我读过,在某些情况下,抽象到接口应该是理想的方法,在其他情况下,我看到TestTables。 我不太确定什么时候应用。 例如,如何测试下面的功能。</ p>

 类型User {
名称字符串`json:“ name”`
 IsMarried布尔`json:“ isMarried  “`
昵称[]字符串json:”昵称“`
} 
 
func(u * User)Create()(* http.Response,error){
 data,err:= json.Marshal(  u)
 if err!= nil {
 return nil,err 
} 
 urll:= EndpointBase +“ / users” 
 
 req,err:= http.NewRequest(http.MethodPost,urll,字节。  NewReader(data))
 if err!= nil {
 return nil,err 
} 
 
 resp,err:= auth.Session.Client.Do(req)
如果err!= nil {\  n return nil,err 
} 
 return resp,nil 
} 
 </ code> </ pre> 
 </ div>

1条回答 默认 最新

相关推荐 更多相似问题