
Developer Sessions
Introducing WireMock.Net:Master HTTP API Testing
WireMock.NET HTTP API behaviors, enabling seamless integration and testing for developers.
👌 Ideal Use Cases:
- HTTP Dependencies Not Ready: Leap over the hurdle of incomplete HTTP APIs in microservice architectures by mimicking their behavior with WireMock.Net.
- Unit Testing HTTP-Dependent Classes: Test classes that rely on HTTP APIs as a cohesive unit, ensuring your code communicates effectively with the actual APIs.
- Integration/End-to-End Tests: Overcome the challenges of testing with external HTTP APIs—like variable data, slow responses, and network restrictions—by employing WireMock.Net for consistent and swift testing.
public class ExternalService(HttpClient httpClient)
{
public async Task<string> GetAsync()
{
var response = await httpClient.GetAsync("/ping");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
public class ExternalServiceTests
{
[Fact]
public async Task GetAsync_WhenCalled_ReturnsString()
{
// Arrange
var fakeServer = WireMockServer.Start();
fakeServer
.Given(Request.Create().WithPath("/ping").UsingGet())
.RespondWith(Response.Create()
.WithStatusCode(200)
.WithBody("pong")
);
var fakeClient = fakeServer.CreateClient();
var externalService = new ExternalService(fakeClient);
// Act
var response = await externalService.GetAsync();
// Assert
response.Should().Be("pong");
}
}