recovery_test.go 569 B

123456789101112131415161718192021222324252627
  1. package tango
  2. import (
  3. "bytes"
  4. "net/http"
  5. "net/http/httptest"
  6. "testing"
  7. "os"
  8. )
  9. func TestRecovery(t *testing.T) {
  10. buff := bytes.NewBufferString("")
  11. recorder := httptest.NewRecorder()
  12. recorder.Body = buff
  13. n := NewWithLog(NewLogger(os.Stdout))
  14. n.Use(NewRecovery(true))
  15. n.UseHandler(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
  16. panic("here is a panic!")
  17. }))
  18. n.ServeHTTP(recorder, (*http.Request)(nil))
  19. expect(t, recorder.Code, http.StatusInternalServerError)
  20. refute(t, recorder.Body.Len(), 0)
  21. refute(t, len(buff.String()), 0)
  22. }