 Documentation
      ¶
      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.