1package negroni 2 3import ( 4 "bytes" 5 "log" 6 "net/http" 7 "net/http/httptest" 8 "testing" 9) 10 11func TestRecovery(t *testing.T) { 12 buff := bytes.NewBufferString("") 13 recorder := httptest.NewRecorder() 14 15 rec := NewRecovery() 16 rec.Logger = log.New(buff, "[negroni] ", 0) 17 18 n := New() 19 // replace log for testing 20 n.Use(rec) 21 n.UseHandler(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) { 22 panic("here is a panic!") 23 })) 24 n.ServeHTTP(recorder, (*http.Request)(nil)) 25 expect(t, recorder.Code, http.StatusInternalServerError) 26 refute(t, recorder.Body.Len(), 0) 27 refute(t, len(buff.String()), 0) 28} 29