2017-12-18 10 views
0

私はGolangでまだ新しいです。 Goテストファイルに複数のhttptest.NewRequestを効率的に作成する方法に関するアイデアはありますか?私は通常、新しい変数を2つ作成して新しいリクエストを作成します。例えば複数のhttptest.NewRequestとGo Testの条件が異なる

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つの異なる要求を作成したいが、実際に私は新しい要求を生成するために、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