2017-12-18 4 views
0

저는 Golang에서 아직 새로 왔습니다. Go 테스트 파일에 여러 httptest.NewRequest를 효율적으로 생성하는 방법에 대한 아이디어가 있습니까? 보통 새로운 변수를 두 개 만들어 새로운 요청을 만듭니다. 예를 들어Gopt 테스트에서 조건이 다른 여러 httptest.NewRequest

는 :

r1 := httptest.NewRequest("GET", url, nil) 
r1.Header.Add("Accept-Language", "id") 
r1.AddCookie(&cookie) 

r2 := httptest.NewRequest("GET", url, nil) 
r1.Header.Add("Accept-Language", "id") 

그래서 나는 사실 내가 새 요청을 생성하기 위해이 변수를 시작해야, 2 개의 다른 요청을 만들려고합니다. 또한 테스트 테이블을 사용하므로 첫 번째 테스트가 실행 된 후에 쿠키를 추가 할 수 없습니다.

답변

3

테스트가 앱에 컴파일되지 않고 앱과 함께 실행되지 않기 때문에 성능을 최적화하도록하는 이유는 거의 없습니다. 천천히 "무의미한"일을하지 마십시오. 앱의 정확성을 확인하기 위해 '오프라인'으로 실행되므로 테스트의 성능이 거의 중요하지 않습니다.

그래서 깨끗하고 짧은 소스 코드로 테스트를 작성하십시오.

그러나 밝혔다되고, 당신은 예를 들어, 생성 및 이와 유사한 요청을 설정하는 유틸리티 함수를 만들 수 있습니다

func newRequest(url string) *http.Request { 
    r := httptest.NewRequest("GET", url, nil) 
    r.Header.Add("Accept-Language", "id") 
    return r 
} 

그리고 당신의 예를 재구성하는 데 사용 :

r1 := newRequest(url) 
r1.AddCookie(&cookie) 

r2 := newRequest(url) 
+0

음 덕분에를 제안, 나는 또한 반복적 인 테스트를위한 작은 함수를 만드는 것에 대해 생각하고있었습니다. :) – fauzanrazandi