golang接口测试
时间: 2023-11-23 17:07:12 浏览: 35
在Golang中进行接口测试,主要是通过使用原生的http依赖库来发送HTTP请求并检查响应。以下是一个简单的例子:
```go
func TestGetUser(t *testing.T) {
// 创建一个测试用的HTTP请求
req, err := http.NewRequest("GET", "/users/1", nil)
if err != nil {
t.Fatal(err)
}
// 创建一个ResponseRecorder来记录响应
rr := httptest.NewRecorder()
handler := http.HandlerFunc(GetUser)
// 将请求传递给处理程序
handler.ServeHTTP(rr, req)
// 检查响应状态码是否为200
if status := rr.Code; status != http.StatusOK {
t.Errorf("handler returned wrong status code: got %v want %v",
status, http.StatusOK)
}
// 检查响应正文是否符合预期
expected := `{"id": "1", "name": "John Doe"}`
if rr.Body.String() != expected {
t.Errorf("handler returned unexpected body: got %v want %v",
rr.Body.String(), expected)
}
}
```
在上面的例子中,我们创建了一个测试用的HTTP请求,然后将其传递给处理程序。我们使用ResponseRecorder来记录响应,并检查响应状态码和正文是否符合预期。