Integration testing fake HTTP server

http_client
testing
integration

#1

Hello,

I am writing an app that is accessing a HTTP server via HTTPoison and shoud be very resillent when it comes to error handling. I would like to make some integration tests and spawn some fake HTTP server from Elixir in order to handle responses. It should be able to e.g. break TCP connection after some data sent (in order to simulate broken connection).

Does anyone know any project that can ease such task? I would prefer to avoid reimplementing HTTP server.


#2

Not that I have ever find. It was on my to-do list at a prior job, but never found time. My boss even had a nick-name for the idea “WWW Server”, short for “world’s worst web server” :wink:

I think the fundamental problem is that there is no web server anywhere that was designed with this kind of idea in mind: “when you respond to this specific upcoming request, drop the connection halfway through sending the headers”, or “never finish sending the body”, etc…


#3

I’ve had success using bypass as a “fake” server for tests. Although I don’t if it is possible to have it simulate a broken connection.


#4

This is a very interesting idea, and something that Elixir would be very well-suited for, I think :D.