What it is
WireMock.Net is an open-source C# .NET library and mock server for stubbing and mocking web HTTP responses. It lives in the .NET ecosystem and is a developer tool for API development and testing. The project is based on mock4net and mimics functionality from the original Java-based WireMock, while providing extended and different functionality. Documentation is available at wiremock.org/dotnet.
The concrete problem it solves is the need to replace real HTTP dependencies during development, testing, and demonstration. Instead of calling a live backend, a developer can run a controllable server that matches requests by URL, path, headers, cookies, or body content patterns and returns configured responses. This supports testing client code, integration flows, and CI/CD pipelines without depending on external services.
Key capabilities
- It stubs HTTP responses and matches requests by URL, path, headers, cookies, and body content patterns.
- It can be used as a library in unit tests and integration tests, or run as a standalone process, Windows service, Azure/IIS deployment, or Docker container.
- It is configurable through a fluent C# .NET API, JSON files, and JSON over HTTP.
- It supports record and playback of stubs through proxying, including per-request conditional proxying.
- It supports stateful behavior simulation and response templating using Handlebars and extensions.
- It supports GraphQL, gRPC and ProtoBuf, OpenAPI, OpenTelemetry, WebSockets, and .NET Aspire distributed application testing.
Who uses it and how
- .NET developers use it to mock HTTP dependencies in unit tests and integration tests, so tests run without external services.
- Teams use it in CI/CD pipelines to provide predictable HTTP responses for automated builds and tests.
- Developers run it locally as a standalone server or inside Docker to inspect request matching and response behavior during API development.
- Teams use proxying to record responses from a real service and replay them later as stubs.
- Aspire users use it to test distributed applications by supplying mocked or stubbed endpoints.
Getting started
Install the official WireMock.Net NuGet package, or use a MyGet preview package for newer builds. Run it as a library, standalone process, Windows service, Azure/IIS deployment, or Docker container.
When to use it — and when not to
Use WireMock.Net when you need an Apache-2.0 licensed HTTP mock server in the .NET ecosystem, especially for unit tests, integration tests, CI/CD pipelines, Docker workflows, or .NET Aspire testing. It is a fit for request matching, response templating, proxying, and support for GraphQL, gRPC, OpenAPI, OpenTelemetry, and WebSockets. Because it is based on Java WireMock but has extended and different functionality, teams expecting an exact replacement should verify behavior against the documentation, especially since the provided facts do not mention a hosted service, database, storage, or SMTP requirements, so deployment complexity depends on the chosen runtime.