Programming Tips πŸ’‘
54.5K subscribers
65 photos
8 videos
30 files
338 links
Programming:
Tips πŸ’‘
Articles πŸ“•
Resources πŸ‘Ύ
Design Patterns πŸ’Ž
Software Principles βœ…

πŸ‡³πŸ‡± Contact & Ads: @MoienTajik
Download Telegram
Introducing WireMock.NET: Master HTTP API Testing πŸš€

WireMock.NET simulates 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");
}
}



[ GitHub ] : https://github.com/WireMock-Net/WireMock.Net

〰️〰️〰️〰️〰️〰️
#DotNet #WireMock #IntegrationTest
@ProgrammingTip