@Konboi memo

主に技術に関してつらつらと。

Golangでredirectのテストをしようとしたら嵌った

はじめに

post以外のメソッドでアクセスしてきた場合は `/‘へリダイレクトするURLに対してきちんとリダイレクトするかのテストを書こうとしたら嵌った

嵌った

func TestRedirectHandler(t *testing.T) {
    ts := httptest.NewServer(http.HandlerFunc(redirectHandler))
    defer ts.Close()

    res, err := http.Get(ts.URL)

    if err != nil {
        t.Errorf("Someting Server Error: %s", err)
    }

    if res.StatusCode != 302 {
        t.Error("Do Not Redirect for Get Method")
    }

}

こんな感じでテストすると errGet /: stopped after 10 redirects って入ってくる。 リダイレクトってエラーなん??

謎い。

しょうがないから

    if err != nil && !strings.Contains(err.Error(), "Get /: stopped after 10 redirects") {
        t.Errorf("Someting Server Error: %s", err)
    }

こうしてみた。

どうするのがお作法なんでしょうか…

まとめ

  • わからん。
  • とりあえずredirectのところの実装みるか