From 3a040f8550191dd89e200cdbdd52de1569cee848 Mon Sep 17 00:00:00 2001 From: bigwheel Date: Wed, 24 Feb 2016 02:44:52 +0900 Subject: [PATCH] Add integration test using httptest --- gin_integration_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gin_integration_test.go b/gin_integration_test.go index 4777c0c..8521697 100644 --- a/gin_integration_test.go +++ b/gin_integration_test.go @@ -11,6 +11,7 @@ import ( "time" "github.com/stretchr/testify/assert" + "net/http/httptest" ) func testRequest(t *testing.T, url string) { @@ -103,3 +104,28 @@ func TestBadUnixSocket(t *testing.T) { router := New() assert.Error(t, router.RunUnix("#/tmp/unix_unit_test")) } + +func TestWithHttptestWithAutoSelectedPort(t *testing.T) { + router := New() + router.GET("/example", func(c *Context) { c.String(http.StatusOK, "it worked") }) + + ts := httptest.NewServer(router) + defer ts.Close() + + testRequest(t, ts.URL+"/example") +} + +func TestWithHttptestWithSpecifiedPort(t *testing.T) { + router := New() + router.GET("/example", func(c *Context) { c.String(http.StatusOK, "it worked") }) + + l, _ := net.Listen("tcp", ":8033") + ts := httptest.Server{ + Listener: l, + Config: &http.Server{Handler: router}, + } + ts.Start() + defer ts.Close() + + testRequest(t, "http://localhost:8033/example") +}