WireMock.Net is a free, open source api development & testing project written in C# and released under Apache-2.0. It has 1,680 GitHub stars, 240 forks and 21 open issues, and was last pushed 7 days ago. On this registry it ranks #82 of 103 tracked projects in API Development & Testing, with 5 head-to-head comparisons available.

What is WireMock.Net?

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.

project readme (upstream, from github) — read inline

Project Icon WireMock.Net

A C# .NET version based on mock4net which mimics functionality from the original Java based WireMock.


:books: Full documentation can now be found at wiremock.org


:star: Key Features

  • HTTP response stubbing, matchable on URL/Path, headers, cookies and body content patterns
  • Library can be used in unit tests and integration tests
  • Runs as a standalone process, as windows service, as Azure/IIS or as docker
  • Configurable via a fluent C# .NET API, JSON files and JSON over HTTP
  • Record/playback of stubs (proxying)
  • Per-request conditional proxying
  • Stateful behaviour simulation
  • Response templating / transformation using Handlebars and extensions
  • Can be used locally or in CI/CD scenarios
  • Can be used for Aspire Distributed Application testing
  • GraphQL support
  • gRPC / ProtoBuf support
  • OpenAPI support
  • OpenTelemetry support
  • WebSockets support

:memo: Blogs

:computer: Project Info

Project  
  Chat Slack Gitter
  Issues GitHub issues
Quality  
  Build Azure Build Status Azure
  Build GitHub Run Tests
  Quality Sonar Quality Gate CodeFactor
  SonarQube Sonar Bugs Sonar Code Smells
  Coverage Sonar Coverage codecov
  TIOBE TIOBE Quality Indicator

:package: NuGet packages

Official Preview :information_source:
  WireMock.Net NuGet Badge WireMock.Net MyGet Badge WireMock.Net
  WireMock.Net.Minimal 🔺 NuGet Badge WireMock.Net.Minimal MyGet Badge WireMock.Net
  WireMock.Net.StandAlone NuGet Badge WireMock.Net MyGet Badge WireMock.Net.StandAlone
  WireMock.Net.Testcontainers NuGet Badge WireMock.Net.Testcontainers MyGet Badge WireMock.Net.Testcontainers
  WireMock.Net.Aspire NuGet Badge WireMock.Net.Aspire MyGet Badge WireMock.Net.Aspire
  WireMock.Net.AspNetCore.Middleware NuGet Badge WireMock.Net.AspNetCore.Middleware MyGet Badge WireMock.Net.AspNetCore.Middleware
  WireMock.Net.AwesomeAssertions NuGet Badge WireMock.Net.AwesomeAssertions MyGet Badge WireMock.Net.AwesomeAssertions
  WireMock.Net.FluentAssertions NuGet Badge WireMock.Net.FluentAssertions MyGet Badge WireMock.Net.FluentAssertions
  WireMock.Net.xUnit NuGet Badge WireMock.Net.xUnit MyGet Badge WireMock.Net.xUnit
  WireMock.Net.xUnit.v3 NuGet Badge WireMock.Net.xUnit MyGet Badge WireMock.Net.xUnit
  WireMock.Net.TUnit NuGet Badge WireMock.Net.TUnit MyGet Badge WireMock.Net.TUnit
  WireMock.Net.NUnit NuGet Badge WireMock.Net.NUnit MyGet Badge WireMock.Net.TUnit
  **WireMock.Net.Extensi

readme truncated — read the full docs on github

Frequently asked questions

Is WireMock.Net free to use?

WireMock.Net is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does WireMock.Net do?

WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating. Based on WireMock Java,

What is WireMock.Net written in?

WireMock.Net is primarily written in C#. Its source is publicly available at https://github.com/wiremock/WireMock.Net, and it has 1,680 GitHub stars.