github.com/4ad/go@v0.0.0-20161219182952-69a12818b605/src/net/http/httptest/example_test.go (about) 1 // Copyright 2013 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package httptest_test 6 7 import ( 8 "fmt" 9 "io/ioutil" 10 "log" 11 "net/http" 12 "net/http/httptest" 13 ) 14 15 func ExampleResponseRecorder() { 16 handler := func(w http.ResponseWriter, r *http.Request) { 17 http.Error(w, "something failed", http.StatusInternalServerError) 18 } 19 20 req := httptest.NewRequest("GET", "http://example.com/foo", nil) 21 w := httptest.NewRecorder() 22 handler(w, req) 23 24 fmt.Printf("%d - %s", w.Code, w.Body.String()) 25 // Output: 500 - something failed 26 } 27 28 func ExampleServer() { 29 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 30 fmt.Fprintln(w, "Hello, client") 31 })) 32 defer ts.Close() 33 34 res, err := http.Get(ts.URL) 35 if err != nil { 36 log.Fatal(err) 37 } 38 greeting, err := ioutil.ReadAll(res.Body) 39 res.Body.Close() 40 if err != nil { 41 log.Fatal(err) 42 } 43 44 fmt.Printf("%s", greeting) 45 // Output: Hello, client 46 }