How to simulate server failure with httptest or http package in isolated unit test?
Details:
I've been using gorilla websockets, so on mt, msg, err := t.conn.ReadMessage()
mt value must be -1 when server goes down.
I tried the following as the main option:
var srv *httptest.Server
srv = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
_, err := wsUpgrader.Upgrade(w, r, nil)
if err != nil {
t.Fatal(err)
}
srv.Close()
}))
But client didn't receive any messages at all. Also I had tried standard http server with panic, however after recover() client didn't receive any messages as well. srv.CloseClientConnections()
didn't help, client waited for messages as before.