Skip to content
skwasjer edited this page Feb 28, 2020 · 11 revisions

Mock HTTP responses for HttpClient and verify request expectations, with an experience inspired by Moq.

Installation

Install MockHttp via the Nuget package manager or dotnet cli.

dotnet add package skwas.MockHttp

For JSON or MediaTypeFormatter integration:

dotnet add package skwas.MockHttp.Json

Build status Tests codecov

skwas.MockHttp NuGet NuGet
skwas.MockHttp.Json NuGet NuGet
skwas.MockHttp.Server NuGet NuGet

Usage example

MockHttpHandler mockHttp = new MockHttpHandler();

// Configure setup(s).
mockHttp
    .When(matching => matching
        .Method("GET")
        .RequestUri("http://localhost/controller/*")
    )
    .RespondJson(HttpStatusCode.OK, new { id = 123, firstName = "John", lastName = "Doe" })
    .Verifiable();

var client = new HttpClient(mockHttp);

// Act
var response = await client.GetAsync("http://localhost/controller/action?test=1");

// Assert
mockHttp.Verify();
response.StatusCode.Should().Be(HttpStatusCode.OK);
// ... etc ...
Clone this wiki locally