Documentation ¶
Overview ¶
Utility functions to help writing tests for a Go-Json-Rest app
Go comes with net/http/httptest to help writing test for an http server. When this http server implements a JSON REST API, some basic checks end up to be always the same. This test package tries to save some typing by providing helpers for this particular use case.
Example:
package main import ( "github.com/ant0ine/go-json-rest/rest/test" "testing" ) func TestSimpleRequest(t *testing.T) { handler := ResourceHandler{} handler.SetRoutes( &Route{"GET", "/r", func(w ResponseWriter, r *Request) { w.WriteJson(map[string]string{"Id": "123"}) }, }, ) recorded := test.RunRequest(t, &handler, test.MakeSessionRequest("POST", "http://1.2.3.4/r", nil)) recorded.CodeIs(200) recorded.ContentTypeIsJson() }
Index ¶
- func BodyIs(t *testing.T, r *httptest.ResponseRecorder, expectedBody string)
- func CodeIs(t *testing.T, r *httptest.ResponseRecorder, expectedCode int)
- func ContentEncodingIsGzip(t *testing.T, r *httptest.ResponseRecorder)
- func ContentTypeIsJson(t *testing.T, r *httptest.ResponseRecorder)
- func DecodeJsonPayload(r *httptest.ResponseRecorder, v interface{}) error
- func HeaderIs(t *testing.T, r *httptest.ResponseRecorder, headerKey, expectedValue string)
- func MakeSimpleRequest(method string, urlStr string, payload interface{}) *http.Request
- type Recorded
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CodeIs ¶
func CodeIs(t *testing.T, r *httptest.ResponseRecorder, expectedCode int)
CodeIs compares the rescorded status code
func ContentEncodingIsGzip ¶
func ContentEncodingIsGzip(t *testing.T, r *httptest.ResponseRecorder)
func ContentTypeIsJson ¶
func ContentTypeIsJson(t *testing.T, r *httptest.ResponseRecorder)
func DecodeJsonPayload ¶
func DecodeJsonPayload(r *httptest.ResponseRecorder, v interface{}) error
Types ¶
type Recorded ¶
type Recorded struct { T *testing.T Recorder *httptest.ResponseRecorder }
func RunRequest ¶
RunRequest runs a HTTP request through the given handler
func (*Recorded) ContentEncodingIsGzip ¶
func (rd *Recorded) ContentEncodingIsGzip()
func (*Recorded) ContentTypeIsJson ¶
func (rd *Recorded) ContentTypeIsJson()
func (*Recorded) DecodeJsonPayload ¶
Click to show internal directories.
Click to hide internal directories.