HttpMock
A library for creating Http servers on the fly in tests and stubbing responses
Install / Use
/learn @hibri/HttpMockREADME
HttpMock
HttpMock enables you to mock the behaviour of HTTP services, that your application depends on, during testing. It's particularly useful for Integration and Acceptance testing.
HttpMock returns canned responses at run time.
Usage.
First, in the application you are testing, change the url of the HTTP service you want to mock, with the url for HttpMock.
Tell HttpMock to listen on the port you've provided. This is always localhost For example:
_stubHttp = HttpMockRepository.At("http://localhost:9191");
Setup the stub that will return the canned response.
_stubHttp.Stub(x => x.Get("/endpoint"))
.Return(expected)
.OK();
There are three essential parts to setting up a stub.
-
The path that will respond.
stubHttp.Stub(x => x.Get("/endpoint")) -
The content that will be returned. Supported body types can be Json, file and string content.
.Return(expected) -
The status code of the response.
.OK()
Eample usage:
[Test]
public void SUT_should_return_stubbed_response()
{
_stubHttp = HttpMockRepository.At("http://localhost:9191");
const string expected = "<xml><response>Hello World</response></xml>";
_stubHttp.Stub(x => x.Get("/endpoint"))
.Return(expected)
.OK();
string result = new WebClient().DownloadString("http://localhost:9191/endpoint");
Console.WriteLine("RESPONSE: {0}", result);
Assert.That(result, Is.EqualTo(expected));
}
Reporting Issues.
When reporting issues, please provide a failing test.
Related Skills
node-connect
335.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
335.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.7kCommit, push, and open a PR
