有一个go-chi中间件正在进行外部调用以授权请求。我需要嘲笑它的作用。
细节:
我有这个测试:
func Test_HTTP_UserSet_Create_InvalidAction(t *testing.T) {
requestBody :=
`{
"name": "test",
"action": "TEST"
}`
req, _ := http.NewRequest("POST", "/1234/users", bytes.NewBuffer([]byte(requestBody)))
recorder := setupInvalidActionRecorder(t, req)
if status := recorder.Code; status != http.StatusBadRequest {
t.Errorf("Status code expected to be %d but got %d", http.StatusBadRequest, status)
return
}
}
以上setupUnknownErrorRecorder是:
func setupUnknownErrorRecorder(t *testing.T, request *http.Request) *httptest.ResponseRecorder {
recorder := httptest.NewRecorder()
c := resty.New()
resource := users.NewResource(
httpClient.NewHttpClient(log, &config.Server{}, &logger.LogRecord{}, c),
)
resource.Routes().ServeHTTP(recorder, request)
return recorder
}
我得到的结果是:
=== RUN Test_HTTP_UserSet_Create_InvalidAction
invalidAction_test.go:71: Status code expected to be 400 but got 401
--- FAIL: Test_HTTP_UserSet_Create_InvalidAction (0.00s)
c这个结果是预期的,因为服务器正在使用我传递给的客户端进行外部调用NewResource。
有一个go-chi中间件正在使用此客户端进行外部调用。
我的问题是:如何让这个 http 调用始终返回 200 而不是真正进行调用。又名如何嘲笑这个电话?
编辑: 上面httpClient的接口是:
type HttpClient struct {
logger *logger.Logger
config *config.Server
instrumentation *instrumentation
record *logger.LogRecord
restyClient *resty.Client
}
func NewHttpClient(
logger *logger.Logger,
config *config.Server,
record *logger.LogRecord,
restyClient *resty.Client,
) HttpClient {
return HttpClient{
instrumentation: newInstrumentation(logger, record),
config: config,
logger: logger,
record: record,
restyClient: restyClient,
}
}
冉冉说
凤凰求蛊
随时随地看视频慕课网APP
相关分类