문제: 엔드포인트를 테스트할 때 Request.FormFile을 어떻게 설정할 수 있습니까?
해결책:
FormFile이 필요한 엔드포인트를 테스트하려면 mime/multipart 패키지를 사용하여 멀티파트 양식 데이터 요청을 생성할 수 있습니다. 데모는 다음과 같습니다.
<code class="go">import ( "bytes" "io" "io/ioutil" "mime/multipart" "net/http" "net/http/httptest" "testing" ) func testEndpoint(t *testing.T) { // Create a multipart form data writer body := &bytes.Buffer{} writer := multipart.NewWriter(body) // Create a form file part part, err := writer.CreateFormFile("y", "someimg.png") if err != nil { t.Fatalf("error creating FormFile: %v", err) } // Copy a test image into the form file part img, err := ioutil.ReadFile("testdata/someimg.png") if err != nil { t.Fatalf("error reading image: %v", err) } if _, err = io.Copy(part, bytes.NewReader(img)); err != nil { t.Fatalf("error copying image: %v", err) } // Close the form data writer err = writer.Close() if err != nil { t.Fatalf("error closing form data writer: %v", err) } // Create a new HTTP request request := httptest.NewRequest("POST", "/", body) request.Header.Add("Content-Type", writer.FormDataContentType()) // Test the endpoint // ... }</code>
이 샘플은 mime/multipart 패키지를 활용하여 양식 파일이 포함된 다중 부분 양식 데이터 요청을 생성합니다. 그런 다음 엔드포인트에 대해 요청을 테스트할 수 있습니다.
추가 정보:
위 내용은 Go HTTP 끝점 테스트에서 Request.FormFile을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!