A library for creating Http servers on the fly in tests and stubbing responses
C# PowerShell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.nuget 1.3.0 Jul 19, 2016
src 2.3.0 Release Feb 25, 2018
.gitignore Response delay (#94) Feb 25, 2018
HttpMock.sln Fiddle with solution config Jun 30, 2017
LICENCE.md Update LICENCE.md Jul 10, 2018
README.md Update README.md Nov 17, 2017
buildpackage.ps1 Integrate Log4net split changes (#78) Jun 30, 2017

README.md

Build status Gitter chat

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 url you've provided. 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.

  1. The path that will respond.

    stubHttp.Stub(x => x.Get("/endpoint"))

  2. The content that will be returned. Supported body types can be Json, file and string content.

    .Return(expected)

  3. 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.